Dieser Leitfaden ist mit der Health Connect-Version 1.1.0-rc01 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.
Verfügbarkeit der Funktion
Wenn du wissen möchtest, ob das Gerät eines Nutzers Daten zu Achtsamkeitssitzungen in Health Connect unterstützt, prüfe, ob FEATURE_MINDFULNESS_SESSION
auf dem Client verfügbar ist:
if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_MINDFULNESS_SESSION
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
Weitere Informationen finden Sie unter Verfügbarkeit von Funktionen prüfen.
Erforderliche Berechtigungen
Wie bei allen Datentypen in Health Connect ist der Zugriff auf eine Achtsamkeitssitzung durch zwei Berechtigungen geschützt: READ_MINDFULNESS
und WRITE_MINDFULNESS
.
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 in der Gruppe 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 sie mit createRequestPermissionResultContract
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
Für diesen Datentyp werden keine Aggregationen unterstützt.
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)
),
)))
}