Suivre la pleine conscience

Ce guide est compatible avec Santé Connect version 1.1.0-alpha11.

Santé Connect fournit un type de données Méditation pour mesurer divers aspects de la santé mentale, comme le stress et l'anxiété. La pleine conscience est un type de données qui fait partie du bien-être global dans Santé Connect.

Autorisations requises

Comme pour tout type de données dans Santé Connect, l'accès à une session de pleine conscience est protégé par une paire d'autorisations: READ_MINDFULNESS_SESSION et WRITE_MINDFULNESS_SESSION.

Demander des autorisations à l'utilisateur

Après avoir créé une instance de client, votre application doit demander des autorisations à l'utilisateur. Les utilisateurs doivent être autorisés à accorder ou à refuser des autorisations à tout moment.

Pour ce faire, créez un ensemble d'autorisations pour les types de données requis. Assurez-vous d'abord que les autorisations de l'ensemble sont déclarées dans votre fichier manifeste Android.

// Create a set of permissions for required data types
val PERMISSIONS =
    setOf(
  HealthPermission.getReadPermission(MindfulnessSessionRecord::class),
  HealthPermission.getWritePermission(MindfulnessSessionRecord::class)
)

Utilisez getGrantedPermissions pour voir si votre application dispose déjà des autorisations requises accordées. Si ce n'est pas le cas, utilisez createRequestPermissionResultContract pour demander ces autorisations. L'écran des autorisations de Santé Connect s'affiche.

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

Étant donné que les utilisateurs peuvent accorder ou révoquer des autorisations à tout moment, votre application doit vérifier régulièrement les autorisations accordées et gérer les cas de perte d'autorisations.

Informations incluses dans un enregistrement de séance de pleine conscience

Chaque enregistrement de session de pleine conscience enregistre tout type de session de pleine conscience qu'un utilisateur effectue, par exemple la méditation, la respiration et le mouvement. L'enregistrement peut également inclure des notes supplémentaires sur la session.

Agrégations compatibles

Santé Connect vous permet d'obtenir les valeurs agrégées suivantes pour une liste donnée de deltas:

Exemples d'utilisation

L'extrait de code suivant montre comment écrire une session de méditation en pleine conscience à l'aide de la bibliothèque 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)
            ),
        )))
    }