MeasureClient
API ile uygulamanız kısa bir süre için veri almak için geri çağırmaları kaydeder.
Uygulamanızın kullanıldığı ve hızlı veri güncellemeleri gerektiren durumlar için tasarlanmıştır. Mümkünse bunu bir ön plan kullanıcı arayüzüyle oluşturun. Böylece kullanıcının bilgi sahibi olması
faydalı olur.
Bağımlılık ekleme
Sağlık Hizmetleri'nde bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposuna bakın.
Ardından, modül düzeyindeki build.gradle
dosyanıza aşağıdaki bağımlılığı ekleyin:
Modern
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, uygulamanızın ihtiyaç duyduğu veri türünü sağlayıp sağlayamayacağını kontrol edin. Öncelikle özellikleri kontrol ederek belirli özellikleri etkinleştirebilir veya devre dışı bırakabilir ya da kullanılamayan özellikleri telafi etmek için uygulamanızın kullanıcı arayüzünü değiştirebilirsiniz.
Aşağıdaki örnekte, bir cihazın HEART_RATE_BPM
veri türünü sağlayıp sağlayamayacağını nasıl kontrol edeceğiniz gösterilmektedir:
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
}
Veri için kaydolma
Kaydettiğiniz her geri çağırma, tek bir veri türü içindir. Bazı veri türlerinin kullanılabilirlik durumlarının farklı olabileceğini unutmayın. Örneğin, cihaz bileğe düzgün bir şekilde takılmadığında nabız verileri kullanılamayabilir.
Geri çağırmalar, sensör örnekleme hızlarında artışa yol açarak güç tüketimini artırır. Bu nedenle, geri çağırma işleminin kaydedildiği süreyi en aza indirmek önemlidir.
Aşağıdaki örnekte HEART_RATE_BPM
verilerini almak için bir geri çağırmanın nasıl kaydedileceği ve kaydının nasıl iptal edileceği gösterilmektedir:
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)
}
}