Health Connect 提供皮膚溫度資料類型,可用於測量周邊身體溫度。這項測量值特別適合用於偵測睡眠品質、生殖健康和潛在疾病發作情形。
所需權限
與 Health Connect 中的任何資料類型一樣,測量皮膚溫度的方式會受到一組權限 (READ_SKIN_TEMPERATURE
和 WRITE_SKIN_TEMPERATURE
) 保護。
皮膚溫度記錄包含的資訊
皮膚溫度測量值會整理成記錄。每筆記錄都包含下列資訊:
- 基準溫度,以攝氏度或華氏度為單位。這是可選值,最適合用於應用程式 UI 中的視覺化呈現。
- 皮膚溫度的差異清單,每筆顯示自上次測量以來的皮膚溫度變化。如果提供基準溫度,這些差異值應使用相同的溫度單位。
- 使用者身體上測量位置的位置:手指、腳趾或手腕。
支援的匯總
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
)
)
)
}