এই নির্দেশিকাটি হেলথ কানেক্ট সংস্করণ 1.1.0-alpha12 এবং পরবর্তী সংস্করণগুলোর সাথে সামঞ্জস্যপূর্ণ।
যেসব ডেভেলপার রিলিজ 1.1.0-alpha12 বা তার পরবর্তী সংস্করণে আপগ্রেড করবেন, তাদের জন্য Health Connect-এর মেটাডেটাতে পরিবর্তন আনা হয়েছে।
গ্রন্থাগারের তথ্য
গুগল মেভেন অ্যান্ড্রয়েড গ্রেডল প্লাগইন আর্টিফ্যাক্ট আইডিটি সেই হেলথ কানেক্ট লাইব্রেরিটিকে শনাক্ত করে, যেটিতে আপনাকে আপগ্রেড করতে হবে। আপনার মডিউল-স্তরের build.gradle ফাইলে এই হেলথ কানেক্ট SDK ডিপেন্ডেন্সিটি যোগ করুন:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
মেটাডেটা পরিবর্তন
হেলথ কানেক্ট জেটপ্যাক এসডিকে- এর 1.1.0-alpha12 সংস্করণ থেকে দুটি মেটাডেটা পরিবর্তন আনা হয়েছে, যা ইকোসিস্টেমে অতিরিক্ত দরকারি মেটাডেটা আছে কিনা তা যাচাই করতে সাহায্য করবে। যদি আপনার Record কনস্ট্রাক্টরে metadata অন্তর্ভুক্ত না থাকে, তাহলে আপনি একটি কনস্ট্রাক্টর ইন্টারনাল এরর দেখতে পারেন।
রেকর্ডিং পদ্ধতি নির্দিষ্ট করুন
যখনই একটি 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(), count = 10 )
ডিভাইসের ধরন
স্বয়ংক্রিয়ভাবে এবং সক্রিয়ভাবে রেকর্ড করা সমস্ত ডেটার জন্য আপনাকে অবশ্যই একটি ডিভাইসের ধরন নির্দিষ্ট করতে হবে। আরও বিস্তারিত জানতে, Jetpack ডকুমেন্টেশনে 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
}
উদাহরণস্বরূপ:
val WATCH_DEVICE = Device( manufacturer = "Google", model = "Pixel Watch", type = Device.TYPE_WATCH ) // Phone val PHONE_DEVICE = Device( manufacturer = "Google", model = "Pixel 8", type = Device.TYPE_PHONE ) // Ring val RING_DEVICE = Device( manufacturer = "Oura", model = "Ring Gen3", type = Device.TYPE_RING ) // Scale val SCALE_DEVICE = Device( manufacturer = "Withings", model = "Body Comp", type = Device.TYPE_SCALE )
স্নিপেট আপডেট করা হয়েছে
নতুন মেটাডেটা প্রয়োজনীয়তা মেনে চলার জন্য যেখানেই নতুন স্নিপেটের প্রয়োজন হয়েছে, হেলথ কানেক্ট গাইডগুলো আপডেট করা হয়েছে। কিছু উদাহরণের জন্য, রাইট ডেটা পৃষ্ঠাটি দেখুন।
নতুন মেটাডেটা পদ্ধতি
মেটাডেটা এখন আর সরাসরি ইনস্ট্যানশিয়েট করা যায় না, তাই মেটাডেটার একটি নতুন ইনস্ট্যান্স পেতে ফ্যাক্টরি মেথডগুলোর মধ্যে একটি ব্যবহার করুন। যখন ডেটা রেকর্ড করার জন্য কোনো ডিভাইস বা সেন্সর ব্যবহার করা হয়, তখন ডিভাইসের তথ্য সরবরাহ করা হয়েছে কি না, তা ফ্যাক্টরি মেথডগুলো যাচাই করে। ম্যানুয়ালি প্রবেশ করানো ডেটার ক্ষেত্রে, ডিভাইসের তথ্য সরবরাহ করা ঐচ্ছিকই থাকে। প্রতিটি ফাংশনের তিনটি সিগনেচার ভ্যারিয়েন্ট রয়েছে:
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।
- একটি
আপনার অ্যাপ যদি এক্সটেন্ডেড ডিভাইস টাইপ লেখে, তবে সেগুলোকে
FEATURE_EXTENTED_DEVICE_TYPESএর আড়ালে রাখুন, যাতে যেসব ডিভাইসে ফিচারটি উপলব্ধ নয়, সেখানে অপ্রত্যাশিতTYPE_UNKNOWNএড়ানো যায়।