Health Connect, periferik vücut sıcaklığını ölçmek için deri sıcaklığı veri türünü sağlar. Bu ölçüm, özellikle uyku kalitesini, üreme sağlığını ve olası hastalık başlangıcını tespit etmek için faydalı bir sinyaldir.
Gerekli izinler
Health Connect'teki tüm veri türlerinde olduğu gibi, cilt sıcaklığına erişim de READ_SKIN_TEMPERATURE
ve WRITE_SKIN_TEMPERATURE
adlı iki izinle korunur.
Deri sıcaklığı kaydında yer alan bilgiler
Deri sıcaklığı ölçümleri kayıtlar halinde düzenlenir. Her kayıt aşağıdaki bilgileri içerir:
- Santigrat veya fahrenhayt derece cinsinden temel sıcaklık. Bu, uygulamanızın kullanıcı arayüzünde görselleştirme için en yararlı olan isteğe bağlı bir değerdir.
- Deri sıcaklığındaki deltaların listesi. Her biri, son ölçümden bu yana deri sıcaklığındaki değişimi gösterir. Referans sıcaklık sağlanırsa bu deltalar aynı sıcaklık birimlerini kullanmalıdır.
- Ölçümün yapıldığı, kullanıcının vücudundaki konum: parmak, ayak parmağı veya bilek.
Desteklenen toplama işlemleri
Health Connect, belirli bir delta listesi için şu toplam değerleri almanıza olanak tanır:
- Minimum değer
- Maksimum değer
- Ortalama değer
Deri sıcaklığını oku
Aşağıdaki kod snippet'inde, Jetpack kitaplığı kullanılarak deri sıcaklığı ölçümlerinin nasıl okunacağı gösterilmektedir:
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.
}
}
Deri sıcaklığını yaz
Aşağıdaki kod snippet'inde, Jetpack kitaplığı kullanılarak deri sıcaklığı ölçümlerinin nasıl yazılacağı gösterilmektedir:
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
)
)
)
}