این راهنما با Health Connect نسخه 1.1.0-rc01 سازگار است.
Health Connect یک نوع داده ذهن آگاهی را برای اندازه گیری جنبه های مختلف سلامت روان، مانند استرس و اضطراب ارائه می دهد. ذهن آگاهی یک نوع داده است که بخشی از سلامت کلی در Health Connect است.
در دسترس بودن ویژگی
برای تعیین اینکه آیا دستگاه کاربر از سوابق جلسه تمرکز حواس در Health Connect پشتیبانی میکند یا خیر، در دسترس بودنFEATURE_MINDFULNESS_SESSION
را در مشتری بررسی کنید:if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_MINDFULNESS_SESSION
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
برای اطلاعات بیشتر به بررسی در دسترس بودن ویژگی مراجعه کنید.
مجوزهای مورد نیاز
دسترسی به ذهن آگاهی با مجوزهای زیر محافظت می شود:
-
android.permission.health.READ_MINDFULNESS
-
android.permission.health.WRITE_MINDFULNESS
برای افزودن قابلیت تمرکز حواس به برنامه خود، با درخواست مجوز نوشتن برای نوع داده MindfulnessSession
شروع کنید.
این مجوزی است که باید اعلام کنید تا بتوانید ذهن آگاهی بنویسید:
<application>
<uses-permission
android:name="android.permission.health.WRITE_MINDFULNESS" />
...
</application>
برای خواندن ذهن آگاهی، باید مجوزهای زیر را درخواست کنید:
<application>
<uses-permission
android:name="android.permission.health.READ_MINDFULNESS" />
...
</application>
درخواست مجوز از کاربر
پس از ایجاد یک نمونه مشتری، برنامه شما باید از کاربر مجوز درخواست کند. کاربران باید در هر زمانی اجازه دهند یا رد کنند.
برای انجام این کار، مجموعه ای از مجوزها را برای انواع داده های مورد نیاز ایجاد کنید. مطمئن شوید که ابتدا مجوزهای مجموعه در مانیفست اندروید شما اعلام شده است.
// Create a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.getReadPermission(MindfulnessSessionRecord::class),
HealthPermission.getWritePermission(MindfulnessSessionRecord::class)
)
از getGrantedPermissions
استفاده کنید تا ببینید آیا برنامه شما قبلاً مجوزهای لازم را دارد یا خیر. اگر نه، از createRequestPermissionResultContract
برای درخواست آن مجوزها استفاده کنید. این صفحه مجوزهای 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)
}
}
از آنجایی که کاربران میتوانند در هر زمانی مجوزها را اعطا یا لغو کنند، برنامه شما باید بهطور دورهای مجوزهای اعطا شده را بررسی کند و سناریوهایی را که در آن مجوز از دست میرود رسیدگی کند.
اطلاعاتی که در سابقه جلسه ذهن آگاهی گنجانده شده است
رکورد هر جلسه ذهن آگاهی، هر نوع جلسه ذهن آگاهی را که کاربر انجام می دهد، ثبت می کند، به عنوان مثال مراقبه، تنفس و حرکت. رکورد همچنین می تواند شامل یادداشت های اضافی در مورد جلسه باشد.
تجمعات پشتیبانی شده
هیچ تجمع پشتیبانی شده ای برای این نوع داده وجود ندارد.
جلسه ذهن آگاهی را بخوانید
قطعه کد زیر نحوه خواندن یک جلسه تمرکز حواس را نشان می دهد:
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)
),
)))
}