Panduan ini kompatibel dengan Health Connect versi 1.1.0-alpha11.
Health Connect menyediakan jenis data mindfulness untuk mengukur berbagai aspek kesehatan mental, seperti stres dan kecemasan. Mindfulness adalah jenis data yang merupakan bagian dari kesehatan secara keseluruhan di Health Connect.
Izin yang diperlukan
Seperti jenis data lainnya di Health Connect, akses ke sesi mindfulness
dilindungi oleh sepasang izin: READ_MINDFULNESS_SESSION
dan
WRITE_MINDFULNESS_SESSION
.
Meminta izin dari pengguna
Setelah membuat instance klien, aplikasi Anda perlu meminta izin dari pengguna. Pengguna harus diizinkan untuk memberikan atau menolak izin setiap saat.
Untuk melakukannya, buat kumpulan izin untuk jenis data yang diperlukan. Pastikan izin dalam kumpulan dideklarasikan dalam manifes Android Anda terlebih dahulu.
// Create a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.getReadPermission(MindfulnessSessionRecord::class),
HealthPermission.getWritePermission(MindfulnessSessionRecord::class)
)
Gunakan getGrantedPermissions
untuk mengetahui apakah aplikasi Anda sudah
mendapatkan izin yang diperlukan. Jika belum, gunakan
createRequestPermissionResultContract
untuk meminta
izin tersebut. Tindakan ini akan menampilkan layar izin Health Connect.
// 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)
}
}
Karena pengguna dapat memberikan atau mencabut izin kapan saja, aplikasi Anda harus memeriksa izin yang diberikan secara berkala dan menangani skenario saat izin tersebut hilang.
Informasi yang disertakan dalam data sesi perhatian penuh
Setiap data sesi perhatian penuh merekam jenis sesi perhatian penuh yang dilakukan pengguna, misalnya meditasi, pernapasan, dan gerakan. Data tersebut juga dapat menyertakan catatan tambahan tentang sesi.
Agregasi yang didukung
Health Connect memungkinkan Anda mendapatkan nilai gabungan berikut untuk daftar delta tertentu:
Contoh penggunaan
Cuplikan kode berikut menunjukkan cara menulis sesi perhatian meditasi menggunakan library 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)
),
)))
}