১.১.০-আলফা১২ বা তার পরবর্তী সংস্করণে আপগ্রেড করা ডেভেলপারদের জন্য হেলথ কানেক্টের মেটাডেটাতে কিছু পরিবর্তন রয়েছে।
লাইব্রেরির তথ্য
গুগল ম্যাভেন অ্যান্ড্রয়েড গ্রেডল প্লাগইন আর্টিফ্যাক্ট আইডি হেলথ কানেক্ট লাইব্রেরিটি সনাক্ত করে যেখানে আপনাকে আপগ্রেড করতে হবে। আপনার মডিউল-স্তরের build.gradle
ফাইলে এই হেলথ কানেক্ট SDK নির্ভরতা যোগ করুন:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
মেটাডেটা পরিবর্তন
ইকোসিস্টেমে অতিরিক্ত কার্যকর মেটাডেটা বিদ্যমান কিনা তা যাচাই করতে সাহায্য করার জন্য হেলথ কানেক্ট জেটপ্যাক SDK সংস্করণ 1.1.0-alpha12-এ দুটি মেটাডেটা পরিবর্তন আনা হয়েছে।
রেকর্ডিং পদ্ধতি উল্লেখ করুন
যখনই কোনও Record()
টাইপ অবজেক্ট ইনস্ট্যান্টিয়েট করা হবে তখন আপনাকে মেটাডেটা বিশদ উল্লেখ করতে হবে।
Health Connect- এ ডেটা লেখার সময়, Metadata
ইনস্ট্যান্ট করার জন্য আপনাকে সংশ্লিষ্ট ফ্যাক্টরি পদ্ধতিগুলির একটি ব্যবহার করে চারটি রেকর্ডিং পদ্ধতির মধ্যে একটি নির্দিষ্ট করতে হবে:
রেকর্ডিং পদ্ধতি | বিবরণ |
---|---|
RECORDING_METHOD_UNKNOWN | রেকর্ডিং পদ্ধতি যাচাই করা যাচ্ছে না। |
RECORDING_METHOD_MANUAL_ENTRY | ব্যবহারকারী তথ্য প্রবেশ করিয়েছেন। |
RECORDING_METHOD_AUTOMATICALLY_RECORDED | একটি ডিভাইস বা সেন্সর তথ্য রেকর্ড করেছে। |
RECORDING_METHOD_ACTIVELY_RECORDED | ব্যবহারকারী একটি ডিভাইসে রেকর্ডিং সেশনের শুরু বা শেষ শুরু করেছিলেন। |
উদাহরণস্বরূপ:
StepsRecord(
startTime = Instant.ofEpochMilli(1234L),
startZoneOffset = null,
endTime = Instant.ofEpochMilli(1236L),
endZoneOffset = null,
metadata = Metadata.manualEntry(),
Count = 10,
)
ডিভাইসের ধরণ
স্বয়ংক্রিয় এবং সক্রিয়ভাবে রেকর্ড করা সমস্ত ডেটার জন্য আপনাকে একটি ডিভাইসের ধরণ নির্দিষ্ট করতে হবে। যদিও manufacturer
এবং model
নির্দিষ্ট করা যেতে পারে, তবে সেগুলি ঐচ্ছিক। আরও বিস্তারিত জানার জন্য, জেটপ্যাক ডকুমেন্টেশনে Device
ক্লাসটি দেখুন। বর্তমান ডিভাইসের ধরণগুলির মধ্যে রয়েছে:
ডিভাইসের ধরণ | বিবরণ |
---|---|
TYPE_UNKNOWN | ডিভাইসের ধরণ অজানা। |
TYPE_WATCH | ডিভাইসটির ধরণ হল একটি ঘড়ি। |
TYPE_PHONE | ডিভাইসের ধরণটি একটি ফোন। |
TYPE_SCALE | ডিভাইসের ধরণটি একটি স্কেল। |
TYPE_RING | ডিভাইসের ধরণটি একটি রিং। |
TYPE_HEAD_MOUNTED | ডিভাইসের ধরণটি একটি মাথা-মাউন্ট করা ডিভাইস। |
TYPE_FITNESS_BAND | ডিভাইসটির ধরণটি একটি ফিটনেস ব্যান্ড। |
TYPE_CHEST_STRAP | ডিভাইসের ধরণটি হল একটি বুকের স্ট্র্যাপ। |
TYPE_SMART_DISPLAY | ডিভাইসটির ধরণটি একটি স্মার্ট ডিসপ্লে। |
কিছু Device.type
মান শুধুমাত্র Health Connect এর পরবর্তী সংস্করণগুলিতে উপলব্ধ। যখন বর্ধিত ডিভাইস প্রকার বৈশিষ্ট্য উপলব্ধ না থাকে, তখন এই প্রকারগুলিকে Device.TYPE_UNKNOWN
হিসাবে বিবেচনা করা হয়।
বর্ধিত ডিভাইসের ধরণ | বিবরণ |
---|---|
TYPE_CONSUMER_MEDICAL_DEVICE | ডিভাইসটির ধরণটি মেডিকেল ডিভাইস। |
TYPE_GLASSES | ডিভাইসের ধরণ হল এক জোড়া স্মার্ট চশমা বা চশমা। |
TYPE_HEARABLE | ডিভাইসের ধরণটি একটি শ্রবণযোগ্য ডিভাইস। |
TYPE_FITNESS_MACHINE | ডিভাইসের ধরণটি একটি স্থির মেশিন। |
TYPE_FITNESS_EQUIPMENT | ডিভাইসটির ধরণটি একটি ফিটনেস সরঞ্জাম। |
TYPE_PORTABLE_COMPUTER | ডিভাইসটির ধরণটি একটি পোর্টেবল কম্পিউটার। |
TYPE_METER | ডিভাইসের ধরণটি একটি পরিমাপ মিটার। |
FEATURE_EXTENDED_DEVICE_TYPES
এর উপলব্ধতা পরীক্ষা করুন:if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_EXTENDED_DEVICE_TYPES
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
সম্ভব হলে, ডিভাইসের ধরণ ছাড়াও ডিভাইসের প্রস্তুতকারক এবং মডেলের নামও উল্লেখ করুন। উদাহরণস্বরূপ:
private val TEST_DEVICE = Device(
manufacturer = "Google",
model = "Pixel Watch",
type = Device.TYPE_WATCH
)
স্নিপেটগুলি আপডেট করা হয়েছে
নতুন মেটাডেটা প্রয়োজনীয়তা মেনে চলার জন্য যেখানেই নতুন স্নিপেট প্রয়োজন সেখানে হেলথ কানেক্ট গাইড আপডেট করা হয়েছে। কিছু উদাহরণের জন্য, Write Data পৃষ্ঠাটি দেখুন।
নতুন মেটাডেটা পদ্ধতি
মেটাডেটা আর সরাসরি ইনস্ট্যান্টিয়েট করা যাবে না, তাই মেটাডেটার একটি নতুন উদাহরণ পেতে ফ্যাক্টরি পদ্ধতিগুলির একটি ব্যবহার করুন। ফ্যাক্টরি পদ্ধতিগুলি যাচাই করে যে ডেটা রেকর্ড করার জন্য কোনও ডিভাইস বা সেন্সর ব্যবহার করার সময় ডিভাইসের তথ্য সরবরাহ করা হয়েছিল। ম্যানুয়ালি প্রবেশ করানো ডেটার জন্য, ডিভাইসের তথ্য প্রদান করা ঐচ্ছিক। প্রতিটি ফাংশনের তিনটি স্বাক্ষর রূপ রয়েছে:
activelyRecorded
-
fun activelyRecorded(device: Device): Metadata.
-
fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
-
fun activelyRecordedWithId(id: String, device: Device): Metadata
-
autoRecorded
-
fun autoRecorded(device: Device): Metadata
-
fun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
-
fun autoRecordedWithId(id: String, device: Device): Metadata
-
manualEntry
-
fun manualEntry(device: Device? = null): Metadata
-
fun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
-
fun manualEntryWithId(id: String, device: Device? = null): Metadata
-
unknownRecordingMethod
-
fun unknownRecordingMethod(device: Device? = null): Metadata
-
fun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
-
fun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata
-
আরও তথ্যের জন্য, অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প দেখুন।
পরীক্ষার তথ্য
প্রত্যাশিত মেটাডেটা মানগুলি নকল করতে টেস্টিং লাইব্রেরি এবং MetadataTestHelper
ব্যবহার করুন:
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
এটি হেলথ কানেক্ট বাস্তবায়নের আচরণকে অনুকরণ করে, যা রেকর্ড সন্নিবেশের সময় স্বয়ংক্রিয়ভাবে এই মানগুলি পূরণ করে।
টেস্টিং লাইব্রেরির জন্য, আপনার মডিউল-স্তরের build.gradle
ফাইলে এই Health Connect SDK নির্ভরতা যোগ করতে হবে:
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
লাইব্রেরি আপগ্রেড করুন
আপনাকে যে প্রধান পদক্ষেপগুলি সম্পাদন করতে হবে তা হল:
আপনার লাইব্রেরি 1.1.0-alpha12 তে আপগ্রেড করুন।
লাইব্রেরি তৈরি করার সময়, নতুন মেটাডেটা প্রয়োজন হলে সংকলন ত্রুটিগুলি ফেলে দেওয়া হবে। এই ত্রুটিগুলি সমাধান করতে এবং সম্পূর্ণ স্থানান্তর করতে, আপনি নিম্নলিখিত পরিবর্তনগুলি করেছেন কিনা তা যাচাই করুন:
- একটি
Record
তৈরি করার সময় একটি রেকর্ডিং পদ্ধতি নির্দিষ্ট করা বাধ্যতামূলক। এটিMetadata
তে প্রদত্ত ফ্যাক্টরি পদ্ধতিগুলির একটি ব্যবহার করে করা হয়, যেমনMetadata.manualEntry()
অথবাMetadata.activelyRecorded(device = Device(...))
। - কোনও ডিভাইস দ্বারা রেকর্ড করা ডেটার জন্য, ডিভাইসের ধরণ নির্দিষ্ট করা বাধ্যতামূলক, যেমন
Device.TYPE_WATCH
অথবাDevice.TYPE_PHONE
।
- একটি
যদি আপনার অ্যাপটি এক্সটেন্ডেড ডিভাইস টাইপ লেখে, তাহলে যেসব ডিভাইসে এই বৈশিষ্ট্যটি উপলব্ধ নেই সেখানে অপ্রত্যাশিত
TYPE_UNKNOWN
এড়াতেFEATURE_EXTENTED_DEVICE_TYPES
পিছনে সেগুলিকে গেট করুন।