Questa guida è compatibile con la versione 1.1.0-alpha11 di Connessione Salute.
Connessione Salute fornisce un tipo di dati mindfulness per misurare vari aspetti della salute mentale, come stress e ansia. La mindfulness è un tipo di dato che fa parte del benessere complessivo in Connessione Salute.
Autorizzazioni richieste
Come per qualsiasi tipo di dati in Connessione Salute, l'accesso a una sessione di mindfulness è protetto da una coppia di autorizzazioni: READ_MINDFULNESS_SESSION
e
WRITE_MINDFULNESS_SESSION
.
Richiedi le autorizzazioni all'utente
Dopo aver creato un'istanza client, l'app deve richiedere all'utente le autorizzazioni. Gli utenti devono poter concedere o negare le autorizzazioni in qualsiasi momento.
A tale scopo, crea un insieme di autorizzazioni per i tipi di dati richiesti. Assicurati innanzitutto che le autorizzazioni nel set siano dichiarate nel file manifest di Android.
// Create a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.getReadPermission(MindfulnessSessionRecord::class),
HealthPermission.getWritePermission(MindfulnessSessionRecord::class)
)
Utilizza getGrantedPermissions
per verificare se alla tua app sono già state concesse le autorizzazioni richieste. In caso contrario, usa
createRequestPermissionResultContract
per richiedere
quelle autorizzazioni. Viene visualizzata la schermata delle autorizzazioni di Connessione Salute.
// Create the permissions launcher
val requestPermissionActivityContract = PermissionController.createRequestPermissionResultContract()
val requestPermissions = registerForActivityResult(requestPermissionActivityContract) { granted ->
if (granted.containsAll(PERMISSIONS)) {
// Permissions successfully granted
} else {
// Lack of required permissions
}
}
suspend fun checkPermissionsAndRun(healthConnectClient: HealthConnectClient) {
val granted = healthConnectClient.permissionController.getGrantedPermissions()
if (granted.containsAll(PERMISSIONS)) {
// Permissions already granted; proceed with inserting or reading data
} else {
requestPermissions.launch(PERMISSIONS)
}
}
Poiché gli utenti possono concedere o revocare le autorizzazioni in qualsiasi momento, la tua app deve controllare periodicamente le autorizzazioni concesse e gestire gli scenari in cui l'autorizzazione viene persa.
Informazioni incluse in un record della sessione di mindfulness
Ogni record della sessione di mindfulness acquisisce qualsiasi tipo di sessione di mindfulness eseguita da un utente, ad esempio meditazione, respirazione e movimento. Il record può anche includere note aggiuntive sulla sessione.
Aggregazioni supportate
Connessione Salute ti consente di ottenere i seguenti valori aggregati per un determinato elenco di delta:
Esempio di utilizzo
Il seguente snippet di codice mostra come scrivere una sessione di meditazione consapevole utilizzando la libreria Jetpack:
if (healthConnectClient.features.getFeatureStatus(FEATURE_MINDFULNESS_SESSION) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
healthConnectClient.insertRecords(listOf(MindfulnessSessionRecord(
startTime = Instant.now().minus(Duration.ofHours(1)),
startZoneOffset = ZoneOffset.UTC,
endTime = Instant.now(),
endZoneOffset = ZoneOffset.UTC,
mindfulnessSessionType = MindfulnessSessionRecord.MINDFULNESS_SESSION_TYPE_MEDITATION,
title = "Lake meditation",
notes = "Meditation by the lake",
metadata = Metadata.activelyRecorded(
clientRecordId = "myid",
clientRecordVersion = 0.0,
device = Device(type = Device.TYPE_PHONE)
),
)))
}