Effettua misurazioni dello stato di integrità con MisuraClient

Con MeasureClient API, la tua app registra i callback per ricevere dati per un breve periodo di tempo. Questa opzione è destinata alle situazioni in cui la tua app è in uso e richiede dati rapidi aggiornamenti. Se possibile, crea questo URL con una UI in primo piano, in modo che l'utente consapevoli.

Aggiungi dipendenze

Per aggiungere una dipendenza dai servizi sanitari, devi aggiungere il Repository Maven di Google al tuo progetto. Per ulteriori informazioni, vedi Repository Maven di Google.

Quindi, nel file build.gradle a livello di modulo, aggiungi la seguente dipendenza:

Groovy

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

Kotlin

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

Verifica le funzionalità

Prima di registrarti per gli aggiornamenti dei dati, verifica che il dispositivo possa fornire il tipo di dati necessari alla tua app. Controllando prima le funzionalità, puoi abilitare disattivare determinate funzionalità o modificare l'UI dell'app per compensare le funzionalità che non sono disponibili.

L'esempio seguente mostra come verificare se un dispositivo è in grado di fornire l'accesso Tipo di dati 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
}

Registrati per ricevere dati

Ogni callback che registri è per un singolo tipo di dati. Tieni presente che alcuni tipi di dati possono avere stati di disponibilità variabili. Ad esempio, i dati del battito cardiaco potrebbero non essere disponibile quando il dispositivo non è attaccato correttamente al polso.

È importante ridurre al minimo il tempo di registrazione della richiamata, poiché i callback causano un aumento delle frequenze di campionamento del sensore, il che a sua volta aumenta il consumo di energia.

L'esempio seguente mostra come registrare e annullare la registrazione di un callback per ricevere Dati di 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)
    }
}