המדריך הזה תואם לגרסה 1.1.0-alpha12 של Health Connect.
ב-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)
healthConnectClient.insertRecords(
// For this example, there's only one skin temperature record.
listOf(
SkinTemperatureRecord(
baseline = Temperature.celsius(37.0),
startTime = recordStartTime.toInstant(),
startZoneOffset = recordStartTime.offset,
endTime = recordEndTime.toInstant(),
endZoneOffset = recordEndTime.offset,
deltas = listOf(
SkinTemperatureRecord.Delta(
recordEndTime.minusMinutes(50).toInstant(), celsius(0.5)
), SkinTemperatureRecord.Delta(
recordEndTime.minusMinutes(30).toInstant(), celsius(-0.7)
)
),
measurementLocation = SkinTemperatureRecord.MEASUREMENT_LOCATION_FINGER,
metadata = Metadata.autoRecorded(
device = Device(type = Device.TYPE_RING)
),
)
)
)
}