এই নির্দেশিকাটি Health Connect সংস্করণ 1.1.0-alpha12 এবং পরবর্তী সংস্করণের সাথে সামঞ্জস্যপূর্ণ।
যেসব ডেভেলপাররা 1.1.0-alpha12 বা তার পরে রিলিজে আপগ্রেড করেন তাদের জন্য Health Connect-এ মেটাডেটাতে পরিবর্তন রয়েছে।
লাইব্রেরি তথ্য
Google Maven অ্যান্ড্রয়েড গ্রেডল প্লাগইন আর্টিফ্যাক্ট আইডি স্বাস্থ্য সংযোগ লাইব্রেরি সনাক্ত করে যেখানে আপনাকে আপগ্রেড করতে হবে। আপনার মডিউল-স্তরের build.gradle
ফাইলে এই Health Connect SDK নির্ভরতা যোগ করুন:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
মেটাডেটা পরিবর্তন
ইকোসিস্টেমে অতিরিক্ত দরকারী মেটাডেটা বিদ্যমান আছে কিনা তা যাচাই করতে সহায়তা করার জন্য সংস্করণ 1.1.0-alpha12 হিসাবে Health Connect Jetpack SDK- তে দুটি মেটাডেটা পরিবর্তন আনা হয়েছে।
রেকর্ডিং পদ্ধতি উল্লেখ করুন
যখনই একটি 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
নির্দিষ্ট করা যেতে পারে, সেগুলি ঐচ্ছিক। আরো বিস্তারিত জানার জন্য, 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_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
)
স্নিপেট আপডেট করা হয়েছে
নতুন মেটাডেটা প্রয়োজনীয়তা মেনে চলার জন্য যেখানেই নতুন স্নিপেট প্রয়োজন সেখানে Health Connect গাইড আপডেট করা হয়েছে। কিছু উদাহরণের জন্য, ডাটা লিখুন পৃষ্ঠা পড়ুন।
নতুন মেটাডেটা পদ্ধতি
মেটাডেটা আর সরাসরি ইনস্ট্যান্ট করা যাবে না, তাই মেটাডেটার একটি নতুন উদাহরণ পেতে ফ্যাক্টরি পদ্ধতিগুলির একটি ব্যবহার করুন। ফ্যাক্টরি পদ্ধতিগুলি যাচাই করে যে ডিভাইসের তথ্য প্রদান করা হয় যখন একটি ডিভাইস বা সেন্সর ডেটা রেকর্ড করতে ব্যবহৃত হয়। ম্যানুয়ালি প্রবেশ করা ডেটার জন্য, ডিভাইসের তথ্য প্রদান ঐচ্ছিক থাকে। প্রতিটি ফাংশনের তিনটি স্বাক্ষর বৈকল্পিক রয়েছে:
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
এর পিছনে রাখুন৷