MeasureClient
एपीआई, आपका ऐप्लिकेशन कम समय के लिए डेटा पाने के लिए कॉलबैक रजिस्टर करता है.
यह उन स्थितियों के लिए है जिनमें आपके ऐप्लिकेशन का इस्तेमाल किया जा रहा है. साथ ही, इसके लिए तेज़ी से डेटा की ज़रूरत होती है
अपडेट. अगर हो सके, तो इसे फ़ोरग्राउंड यूज़र इंटरफ़ेस (यूआई) के साथ बनाएं, ताकि उपयोगकर्ता
पता है.
डिपेंडेंसी जोड़ें
Health Services पर डिपेंडेंसी जोड़ने के लिए, आपको Google Maven रिपॉज़िटरी जोड़ना होगा को भी शामिल किया जा सकता है. ज़्यादा जानकारी के लिए, यह देखें Google की Maven रिपॉज़िटरी.
इसके बाद, अपने मॉड्यूल-लेवल की build.gradle
फ़ाइल में, यह डिपेंडेंसी जोड़ें:
ग्रूवी
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha03" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha03") }
सुविधाएं देखें
डेटा अपडेट के लिए रजिस्टर करने से पहले, देख लें कि डिवाइस यह जानकारी दे सकता है या नहीं ज़रूरत होती है. पहले क्षमताओं की जाँच करके, आप इसे चालू कर सकते हैं या सुविधाओं की भरपाई करने के लिए, कुछ सुविधाएं बंद करना या अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में बदलाव करना जो उपलब्ध नहीं हैं.
यहां दिए गए उदाहरण में, यह पता करने का तरीका बताया गया है कि कोई डिवाइस
HEART_RATE_BPM
डेटा टाइप:
val healthClient = HealthServices.getClient(this /*context*/)
val measureClient = healthClient.measureClient
lifecycleScope.launch {
val capabilities = measureClient.getCapabilitiesAsync().await()
supportsHeartRate = DataType.HEART_RATE_BPM in capabilities.supportedDataTypesMeasure
}
डेटा के लिए रजिस्टर करें
रजिस्टर किया गया हर कॉलबैक एक डेटा टाइप के लिए होता है. ध्यान दें कि कुछ डेटा टाइप उपलब्धता की स्थितियां अलग-अलग हो सकती हैं. उदाहरण के लिए, धड़कन की दर का डेटा अगर डिवाइस कलाई से ठीक से नहीं जुड़ा है, तो यह उपलब्ध रहेगा.
यह ज़रूरी है कि कॉलबैक के रजिस्टर होने में लगने वाले समय को कम किया जाए, क्योंकि कॉलबैक सेंसर के सैंपलिंग की दर को बढ़ा देते हैं, जो इसी वजह से बढ़ जाती है ऊर्जा की खपत.
इस उदाहरण में, कॉलबैक पाने के लिए, कॉलबैक को रजिस्टर और रद्द करने का तरीका बताया गया है
HEART_RATE_BPM
डेटा:
val heartRateCallback = object : MeasureCallback {
override fun onAvailabilityChanged(dataType: DeltaDataType<*, *>, availability: Availability) {
if (availability is DataTypeAvailability) {
// Handle availability change.
}
}
override fun onDataReceived(data: DataPointContainer) {
// Inspect data points.
}
}
val healthClient = HealthServices.getClient(this /*context*/)
val measureClient = healthClient.measureClient
// Register the callback.
measureClient.registerMeasureCallback(DataType.Companion.HEART_RATE_BPM, heartRateCallback)
// Unregister the callback.
awaitClose {
runBlocking {
measureClient.unregisterMeasureCallbackAsync(DataType.Companion.HEART_RATE_BPM, heartRateCallback)
}
}