Effettua misurazioni dello stato di integrità con MisuraClient

Con l'API MeasureClient, l'app registra i callback per ricevere dati per un breve periodo di tempo. Questo è indicato per situazioni in cui l'app è in uso e richiede rapidi aggiornamenti dei dati. Se possibile, crea questo URL con un'interfaccia utente in primo piano in modo che l'utente sia a conoscenza.

Aggiungi dipendenze

Per aggiungere una dipendenza a Health Services, devi aggiungere il Repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il Repository Maven di Google.

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

Trendy

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

Kotlin

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

Verifica le funzionalità

Prima di registrarti per gli aggiornamenti dei dati, verifica che il dispositivo possa fornire il tipo di dati necessario per la tua app. Controllando prima le funzionalità, puoi abilitare o disabilitare determinate funzionalità o modificare l'interfaccia utente della tua app per compensare le funzionalità non disponibili.

L'esempio seguente mostra come verificare se un dispositivo può fornire il 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 i dati

Ogni callback che registri riguarda un singolo tipo di dati. Tieni presente che alcuni tipi di dati potrebbero avere stati di disponibilità diversi. Ad esempio, i dati sul battito cardiaco potrebbero non essere disponibili quando il dispositivo non è collegato correttamente al polso.

È importante ridurre al minimo la quantità di tempo durante la registrazione del callback, poiché i callback causano un aumento delle frequenze di campionamento del sensore, che a loro volta aumenta il consumo energetico.

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