מעקב אחר מיינדפולנס

המדריך הזה תואם לגרסה 1.1.0-alpha11 של Health Connect.

ב-Health Connect יש סוג נתונים של מיינדפולנס למדידת היבטים שונים של בריאות הנפש, כמו לחץ וחרדה. 'תרגול מיינדפולנס' הוא סוג נתונים שמשויך ל'רווחה כללית' ב-Health Connect.

הרשאות נדרשות

כמו כל סוג נתונים ב-Health Connect, הגישה לסשן של תרגול מיינדפולנס מוגנת על ידי שתי הרשאות: READ_MINDFULNESS_SESSION ו-WRITE_MINDFULNESS_SESSION.

בקשת הרשאות מהמשתמש

אחרי שיוצרים מכונה של לקוח, האפליקציה צריכה לבקש הרשאות מהמשתמש. המשתמשים צריכים להיות מורשים להעניק או לדחות הרשאות בכל שלב.

כדי לעשות זאת, יוצרים קבוצת הרשאות לסוגים הנדרשים של נתונים. קודם צריך לוודא שההרשאות בקבוצה מוצהרות במניפסט של 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)
  }
}

מכיוון שמשתמשים יכולים להעניק או לבטל הרשאות בכל שלב, האפליקציה צריכה לבדוק מדי פעם אילו הרשאות ניתנו ולטפל בתרחישים שבהם ההרשאה נשללת.

המידע שכלול ברשומה של סשן מיינדפולנס

כל רשומה של סשן מיינדפולנס מתעדת כל סוג של סשן מיינדפולנס שהמשתמש מבצע, למשל מדיטציה, נשימה ותנועה. הרשומה יכולה לכלול גם הערות נוספות על הסשן.

צבירות נתמכות

באמצעות Health Connect אפשר לקבל את הערכים המצטברים הבאים עבור רשימה נתונה של ערכים דלתא:

דוגמה לשימוש

בקטע הקוד הבא מוסבר איך לכתוב סשן מדיטציה באמצעות ספריית 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)
            ),
        )))
    }