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)
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)
),
)
)
)
}