Melakukan pengukuran kesehatan spot secara menyeluruh dengan MeasureClient

Dengan MeasureClient API, aplikasi Anda mendaftarkan callback untuk menerima data dalam waktu singkat. Hal ini dirancang untuk situasi saat aplikasi Anda sedang digunakan dan memerlukan pembaruan data yang cepat. Jika memungkinkan, buat callback ini dengan UI latar depan agar pengguna mengetahuinya.

Menambahkan dependensi

Untuk menambahkan dependensi di Fitur Kesehatan, Anda harus menambahkan repositori Maven Google ke project Anda. Untuk mengetahui informasi selengkapnya, lihat Repositori Maven Google.

Kemudian, di file build.gradle tingkat modul, tambahkan dependensi berikut:

Groovy

dependencies {
    implementation "androidx.health:health-services-client:1.1.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.health:health-services-client:1.1.0-alpha03")
}

Memeriksa kemampuan

Sebelum mendaftar untuk pembaruan data, pastikan perangkat dapat menyediakan jenis data yang dibutuhkan aplikasi Anda. Dengan memeriksa kemampuan terlebih dahulu, Anda dapat mengaktifkan atau menonaktifkan fitur tertentu atau mengubah UI aplikasi untuk mengimbangi kemampuan yang tidak tersedia.

Contoh berikut menunjukkan cara memeriksa apakah perangkat dapat menyediakan jenis data 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
}

Mendaftarkan data

Setiap callback yang Anda daftarkan adalah untuk satu jenis data. Perlu diperhatikan bahwa beberapa jenis data mungkin memiliki status ketersediaan yang bervariasi. Misalnya, data detak jantung mungkin tidak tersedia saat perangkat tidak dipasang dengan benar ke pergelangan tangan.

Penting untuk meminimalkan jumlah waktu callback didaftarkan, karena callback menyebabkan peningkatan frekuensi sampling sensor, yang pada akhirnya meningkatkan penggunaan daya.

Contoh berikut menunjukkan cara mendaftar dan membatalkan pendaftaran callback untuk menerima data 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)
    }
}