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

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

אפליקציית 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)
            ),
        )))
    }