Ce guide est compatible avec la version 1.1.0-rc01 de Santé Connect.
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.
Disponibilité de la fonctionnalité
Pour déterminer si l'appareil d'un utilisateur est compatible avec les enregistrements de sessions de pleine conscience dans Santé Connect, vérifiez la disponibilité de FEATURE_MINDFULNESS_SESSION
sur le client:
if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_MINDFULNESS_SESSION
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
Pour en savoir plus, consultez Vérifier la disponibilité des fonctionnalités.
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
et WRITE_MINDFULNESS
.
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 session de pleine conscience
Chaque enregistrement de session de pleine conscience enregistre tout type de session de pleine conscience effectuée par un utilisateur, 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
Aucune agrégation n'est acceptée pour ce type de données.
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)
),
)))
}