使用
MeasureClient
敬上
API,應用程式會註冊回呼,在短時間內接收資料。
當應用程式在使用中,且需要快速傳輸資料時,才適合使用這個方法
更新。如果可行,請使用前景 UI 建立此內容,以便使用者
清楚掌握現況
新增依附元件
如要為健康照護服務新增依附元件,必須將 Google Maven 存放區新增至專案。詳情請參閱「Google 的 Maven 存放區」一文。
接下來,在模組層級的 build.gradle
檔案中新增以下依附元件:
Groovy
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)
}
}