Mit der
MeasureClient
API registriert Ihre App Rückrufe, um für kurze Zeit Daten zu empfangen.
Dies ist für Situationen gedacht, in denen deine App verwendet wird und schnelle Daten erforderlich sind.
Aktualisierungen. Erstellen Sie diese nach Möglichkeit mit einer UI im Vordergrund, damit der Nutzer
bewusst sind.
Abhängigkeiten hinzufügen
Wenn Sie eine Abhängigkeit von Health Services hinzufügen möchten, müssen Sie das Google Maven-Repository hinzufügen zu Ihrem Projekt hinzufügen. Weitere Informationen finden Sie unter Maven-Repository von Google.
Fügen Sie dann in der Datei build.gradle
auf Modulebene die folgende Abhängigkeit hinzu:
Groovy
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha03" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha03") }
Funktionen prüfen
Bevor Sie sich für Datenupdates registrieren, prüfen Sie, ob das Gerät den Typ die Ihre App benötigt. Wenn Sie zuerst die Funktionen prüfen, können Sie bestimmte Funktionen deaktivieren oder die Benutzeroberfläche Ihrer App anpassen, um dies zu kompensieren die nicht verfügbar sind.
Das folgende Beispiel zeigt, wie Sie prüfen können, ob ein Gerät
Datentyp 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
}
Für Daten registrieren
Jeder Callback, den Sie registrieren, gilt für einen einzelnen Datentyp. Beachten Sie, dass einige Datentypen können unterschiedliche Verfügbarkeitsstatus haben. Beispielsweise kann es passieren, dass die verfügbar sein, wenn das Gerät nicht richtig am Handgelenk befestigt ist.
Es ist wichtig, die Dauer der Registrierung deines Callbacks zu minimieren. da Callbacks eine Erhöhung der Sensor-Abtastraten verursachen, Stromverbrauch.
Das folgende Beispiel zeigt, wie Sie einen Callback registrieren und die Registrierung aufheben, um
HEART_RATE_BPM
-Daten:
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)
}
}