यह गाइड, Health Connect के 1.1.0-alpha12 वर्शन के साथ काम करती है.
रिलीज़ 1.1.0-alpha12 पर अपग्रेड करने का विकल्प चुनने वाले डेवलपर के लिए, Health Connect में मेटाडेटा से जुड़े बदलाव किए गए हैं.
लाइब्रेरी की जानकारी
Google Maven Android gradle plugin का आर्टफ़ैक्ट आईडी, उस Health Connect लाइब्रेरी की पहचान करता है जिसे आपको अपग्रेड करना होगा.
अपने मॉड्यूल-लेवल की build.gradle फ़ाइल में, Health Connect SDK की यह डिपेंडेंसी जोड़ें:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
मेटाडेटा में बदलाव
Health Connect Jetpack SDK के वर्शन 1.1.0-alpha12 में, मेटाडेटा से जुड़े दो बदलाव किए गए हैं. इससे यह पक्का किया जा सकेगा कि इकोसिस्टम में काम का अतिरिक्त मेटाडेटा मौजूद हो.
रिकॉर्डिंग का तरीका बताना
जब भी Record() टाइप ऑब्जेक्ट इंस्टैंटिएट किया जाता है, तब आपको मेटाडेटा की जानकारी देनी होती है.
Health Connect में डेटा सेव करते समय, आपको रिकॉर्डिंग के चार तरीकों में से किसी एक के बारे में बताना होगा:
| रिकॉर्डिंग का तरीका | ब्यौरा |
|---|---|
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,
)
डिवाइस का टाइप
अपने-आप और ऐक्टिव तौर पर रिकॉर्ड किए गए सभी डेटा के लिए, आपको डिवाइस का टाइप बताना होगा. मौजूदा डिवाइस टाइप में ये शामिल हैं:
| डिवाइस का टाइप | ब्यौरा |
|---|---|
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
)
स्निपेट अपडेट किए गए
मेटाडेटा से जुड़ी नई ज़रूरी शर्तों का पालन करने के लिए, Health Connect की गाइड को अपडेट किया गया है. इनमें नए स्निपेट जोड़े गए हैं. कुछ उदाहरणों के लिए, डेटा लिखना पेज देखें.
मेटाडेटा के नए तरीके
मेटाडेटा को अब सीधे तौर पर इंस्टैंशिएट नहीं किया जा सकता. इसलिए, मेटाडेटा का नया इंस्टेंस पाने के लिए, फ़ैक्ट्री के किसी एक तरीके का इस्तेमाल करें. हर फ़ंक्शन के तीन सिग्नेचर वैरिएंट होते हैं:
activelyRecordedfun activelyRecorded(device: Device): Metadata.fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadatafun activelyRecordedWithId(id: String, device: Device): Metadata
autoRecordedfun autoRecorded(device: Device): Metadatafun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadatafun autoRecordedWithId(id: String, device: Device): Metadata
manualEntryfun manualEntry(device: Device? = null): Metadatafun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadatafun manualEntryWithId(id: String, device: Device? = null): Metadata
unknownRecordingMethodfun unknownRecordingMethod(device: Device? = null): Metadatafun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadatafun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata
ज़्यादा जानकारी के लिए, Android Open Source Project देखें.
टेस्टिंग डेटा
मेटाडेटा की अनुमानित वैल्यू को मॉक करने के लिए, Testing Library का इस्तेमाल करें:
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
इससे Health Connect के इंटिग्रेशन के व्यवहार का पता चलता है. यह रिकॉर्ड डालने के दौरान, इन वैल्यू को अपने-आप भर देता है.
टेस्टिंग लाइब्रेरी के लिए, आपको अपने मॉड्यूल-लेवल की build.gradle फ़ाइल में, Health Connect SDK टूल की यह डिपेंडेंसी जोड़नी होगी:
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
लाइब्रेरी को अपग्रेड करना
आपको ये मुख्य चरण पूरे करने होंगे:
अपनी लाइब्रेरी को 1.1.0-alpha12 पर अपग्रेड करें.
लाइब्रेरी बनाते समय, जहां नए मेटाडेटा की ज़रूरत होती है वहां कंपाइलेशन से जुड़ी गड़बड़ियां दिखेंगी. इसलिए, जब भी
Record()टाइप का ऑब्जेक्ट इंस्टैंटिएट किया जाता है, तब ज़रूरी मेटाडेटा में बदलाव करना न भूलें. इससे माइग्रेशन पूरा हो जाना चाहिए.अगर आपका ऐप्लिकेशन, डिवाइस के टाइप की ज़्यादा जानकारी लिखता है, तो उसे
FEATURE_EXTENTED_DEVICE_TYPESके पीछे छिपाएं. इससे उन डिवाइसों पर अनचाहेTYPE_UNKNOWNसे बचा जा सकेगा जिन पर यह सुविधा उपलब्ध नहीं है.