Monitorare la mindfulness

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)
            ),
        )))
    }