Şununla
MeasureClient
API kullanıyorsanız uygulamanız kısa bir süreliğine veri almak için geri çağırmalar kaydeder.
Bu, uygulamanızın kullanıldığı ve hızlı veri gerektirdiği durumlar içindir
güncellemelerine göz atın. Mümkünse bunu bir ön plan kullanıcı arayüzüyle oluşturun.
farkında.
Bağımlılıkları ekleme
Sağlık Hizmetleri'ne bağımlılık eklemek için Google Maven deposunu eklemeniz gerekir projenize ekleyin. Daha fazla bilgi için bkz. Google'ın Maven deposu.
Ardından modül düzeyindeki build.gradle
dosyanıza aşağıdaki bağımlılığı ekleyin:
Eski
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha03" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha03") }
Özellikleri kontrol edin
Veri güncellemelerine kaydolmadan önce cihazın, veri güncelleme özelliği en değerli verilerdir. Öncelikle özellikleri kontrol ederek belirli özellikleri devre dışı bırakın veya özellikleri telafi etmek için uygulamanızın kullanıcı arayüzünü değiştirin daha fazla bilgi edinebilirsiniz.
Aşağıdaki örnekte, bir cihazın şunları sağlayıp sağlayamayacağının nasıl kontrol edileceği gösterilmektedir:
HEART_RATE_BPM
veri türü:
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
}
Veriler için kaydolun
Kaydettiğiniz her geri çağırma, tek bir veri türü içindir. Bazı veri türlerinin farklı kullanılabilirlik durumları olabilir. Örneğin, nabız verileri Cihaz bileğe doğru şekilde takılmadığında kullanılabilir.
Geri aramanızın kaydedildiği süreyi en aza indirmek önemlidir. Bunun nedeni, geri çağırmaların sensör örnekleme hızlarında bir artışa yol açması ve bunun da güç tüketimine sahip olursunuz.
Aşağıdaki örnekte, bir geri çağırmanın nasıl kaydedileceği ve kayıt iptalinin nasıl
HEART_RATE_BPM
verileri:
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)
}
}