मेटाडेटा से जुड़ी ज़रूरी शर्तें

यह गाइड, Health Connect के 1.1.0-alpha12 वर्शन के साथ काम करती है.

जिन डेवलपर ने 1.1.0-alpha12 रिलीज़ पर अपग्रेड करने का विकल्प चुना है उनके लिए, Health Connect के मेटाडेटा में बदलाव किए गए हैं.

लाइब्रेरी की जानकारी

Google Maven Android Gradle प्लग इन के आर्टफ़ैक्ट आईडी से, उस 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 डिवाइस स्मार्ट डिसप्ले हो.

उदाहरण के लिए:

private val TEST_DEVICE = Device(type = Device.TYPE_PHONE)

स्निपेट अपडेट किए गए

मेटाडेटा से जुड़ी नई ज़रूरी शर्तों का पालन करने के लिए, जहां भी नए स्निपेट की ज़रूरत है वहां 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

ज़्यादा जानकारी के लिए, 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.1.0-alpha12 पर अपग्रेड करें.

  2. लाइब्रेरी बनाते समय, जहां नए मेटाडेटा की ज़रूरत होगी वहां कंपाइलेशन से जुड़ी गड़बड़ियां दिखेंगी. इसलिए, जब भी Record() टाइप का ऑब्जेक्ट इंस्टैंशिएट किया जाए, तो मेटाडेटा में ज़रूरी बदलाव करना न भूलें. इससे, माइग्रेशन की प्रोसेस पूरी हो जाएगी.