מדידה של טמפרטורת העור

ב-Health Connect יש סוג נתונים בשם טמפרטורת העור למדידת טמפרטורת הגוף ההיקפית. המדידה הזו היא אות שימושי במיוחד לזיהוי איכות השינה, בריאות הפוריות וההתחלה של מחלה אפשרית.

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

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

המידע שכלול ברשומה של טמפרטורת העור

מדידות טמפרטורת העור מאורגנות ברשומות. כל רשומה מכילה את הפרטים הבאים:

  • טמפרטורת בסיס, במעלות צלזיוס או מעלות פרנהייט. זהו ערך אופציונלי שהכי שימושי להצגה חזותית בממשק המשתמש של האפליקציה.
  • רשימת דלתא של טמפרטורת העור, שבה כל ערכה מציגה את השינוי בטמפרטורת העור מאז המדידה האחרונה. אם הטמפרטורה הבסיסית מסופקת, צריך להשתמש באותן יחידות טמפרטורה בערכים האלה.
  • המיקום בגוף המשתמש שבו בוצעה המדידה: אצבע, אצבע או פרק כף יד.

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

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

  • הגעת לערך המינימלי
  • הגעת לערך המקסימלי
  • ערך ממוצע

קריאה של טמפרטורת העור

קטע הקוד הבא מראה איך לקרוא את המדדים של טמפרטורת העור באמצעות ספריית Jetpack:

suspend fun readSkinTemperatures() {
    // Error handling, permission check, and feature availability check
    // aren't included.

    // Record includes measurements during the past hour.
    val recordEndTime = Instant.now()
    val recordStartTime = recordEndTime.minusSeconds(60 * 60)

    val response = healthConnectClient.readRecords(
        ReadRecordsRequest<SkinTemperatureRecord>(
            timeRangeFilter = TimeRangeFilter.between(
                    recordStartTime, recordEndTime)
        )
    )

    for (skinTemperatureRecord in response.records) {
        // Process each skin temperature record here.
    }
}

כתיבה של טמפרטורת העור

קטע הקוד הבא מראה איך לכתוב מדידות של טמפרטורת העור באמצעות ספריית Jetpack:


suspend fun writeSkinTemperatures(): InsertRecordsResponse {
    // Error handling, permission check, and feature availability check
    // aren't included.

    // Record includes measurements during the past hour.
    val recordEndTime: ZonedDateTime = now()
    val recordStartTime: ZonedDateTime = recordEndTime.minusHours(1)

    return healthConnectClient.insertRecords(
        // For this example, there's only one skin temperature record.
        listOf(
            SkinTemperatureRecord(
                startTime = recordStartTime.toInstant(),
                startZoneOffset = recordStartTime.offset,
                endTime = recordEndTime.toInstant(),
                endZoneOffset = recordEndTime.offset,
                deltas = listOf(
                    SkinTemperatureRecord.Delta(
                            recordEndTime.minusMinutes(50), celsius(0.5)),
                    SkinTemperatureRecord.Delta(
                            recordEndTime.minusMinutes(30), celsius(-0.7))
                ),
                measurementLocation =
                        SkinTemperatureRecord.MEASUREMENT_LOCATION_FINGER
            )
        )
    )
}