Dieser Leitfaden ist mit der Health Connect-Version 1.1.0-alpha11 kompatibel.
Health Connect bietet den Datentyp Achtsamkeit, mit dem verschiedene Aspekte der psychischen Gesundheit gemessen werden können, z. B. Stress und Angst. Achtsamkeit ist ein Datentyp, der in Health Connect zum allgemeinen Wohlbefinden gehört.
Erforderliche Berechtigungen
Wie bei allen Datentypen in Health Connect ist der Zugriff auf eine Achtsamkeitssitzung durch zwei Berechtigungen geschützt: READ_MINDFULNESS_SESSION
und WRITE_MINDFULNESS_SESSION
.
Berechtigungen vom Nutzer anfordern
Nachdem Sie eine Clientinstanz erstellt haben, muss Ihre App vom Nutzer Berechtigungen anfordern. Nutzer müssen jederzeit Berechtigungen erteilen oder verweigern können.
Erstellen Sie dazu eine Reihe von Berechtigungen für die erforderlichen Datentypen. Achten Sie darauf, dass die Berechtigungen im Set zuerst in Ihrem Android-Manifest deklariert werden.
// Create a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.getReadPermission(MindfulnessSessionRecord::class),
HealthPermission.getWritePermission(MindfulnessSessionRecord::class)
)
Mit getGrantedPermissions
können Sie prüfen, ob Ihrer App bereits die erforderlichen Berechtigungen erteilt wurden. Andernfalls kannst du mit createRequestPermissionResultContract
diese Berechtigungen anfordern. Daraufhin wird der Bildschirm mit den Health Connect-Berechtigungen angezeigt.
// 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)
}
}
Da Nutzer Berechtigungen jederzeit gewähren oder widerrufen können, muss Ihre App regelmäßig nach erteilten Berechtigungen suchen und mit Szenarien umgehen, in denen die Berechtigung verloren geht.
In einem Eintrag für eine Achtsamkeitsübung enthaltene Informationen
In jedem Datensatz zu einer Achtsamkeitsübung wird jede Art von Achtsamkeitsübung erfasst, die ein Nutzer ausführt, z. B. Meditation, Atmung und Bewegung. Der Eintrag kann auch zusätzliche Notizen zur Sitzung enthalten.
Unterstützte Aggregationen
Mit Health Connect können Sie die folgenden Gesamtwerte für eine bestimmte Liste von Deltas abrufen:
Anwendungsbeispiel
Im folgenden Code-Snippet wird gezeigt, wie eine Meditationseinheit mit der Jetpack-Bibliothek erstellt wird:
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)
),
)))
}