सजगता को ट्रैक करना

यह गाइड, 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>

उपयोगकर्ता से अनुमतियों का अनुरोध करना

क्लाइंट इंस्टेंस बनाने के बाद, आपके ऐप्लिकेशन को उपयोगकर्ता से अनुमतियों का अनुरोध करना होगा. उपयोगकर्ताओं को किसी भी समय अनुमतियां देने या अस्वीकार करने की अनुमति होनी चाहिए.

इसके लिए, ज़रूरी डेटा टाइप के लिए अनुमतियों का सेट बनाएं. पक्का करें कि सेट में मौजूद अनुमतियों का एलान, सबसे पहले आपके Android मेनिफ़ेस्ट में किया गया हो.

// 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)
            ),
        )))
    }