এই নির্দেশিকাটি Health Connect সংস্করণ 1.1.0-rc01 এর সাথে সামঞ্জস্যপূর্ণ।
মানসিক স্বাস্থ্যের বিভিন্ন দিক যেমন স্ট্রেস এবং উদ্বেগ পরিমাপ করার জন্য Health Connect একটি মাইন্ডফুলনেস ডেটা টাইপ প্রদান করে। Mindfulness হল একটি ডেটা টাইপ যা 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>
ব্যবহারকারীর কাছ থেকে অনুমতি অনুরোধ
একটি ক্লায়েন্ট উদাহরণ তৈরি করার পরে, আপনার অ্যাপটিকে ব্যবহারকারীর কাছ থেকে অনুমতির অনুরোধ করতে হবে। ব্যবহারকারীদের যেকোন সময় অনুমতি প্রদান বা অস্বীকার করার অনুমতি দিতে হবে।
এটি করতে, প্রয়োজনীয় ডেটা প্রকারের জন্য অনুমতিগুলির একটি সেট তৈরি করুন৷ নিশ্চিত করুন যে সেটের অনুমতিগুলি প্রথমে আপনার Android ম্যানিফেস্টে ঘোষণা করা হয়েছে।
// Create a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.getReadPermission(MindfulnessSessionRecord::class),
HealthPermission.getWritePermission(MindfulnessSessionRecord::class)
)
আপনার অ্যাপে ইতিমধ্যেই প্রয়োজনীয় অনুমতি দেওয়া আছে কিনা তা দেখতে getGrantedPermissions
ব্যবহার করুন। যদি না হয়, সেই অনুমতিগুলির অনুরোধ করতে createRequestPermissionResultContract
ব্যবহার করুন। এটি স্বাস্থ্য সংযোগের অনুমতি স্ক্রীন প্রদর্শন করে।
// 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)
),
)))
}