Health Connect menyediakan jenis data suhu kulit untuk mengukur suhu periferal tubuh. Pengukuran ini merupakan sinyal yang sangat berguna untuk mendeteksi kualitas tidur, kesehatan reproduksi, dan potensi timbulnya penyakit.
Izin yang diperlukan
Seperti jenis data apa pun di Health Connect, akses ke suhu kulit dilindungi
oleh sepasang izin: READ_SKIN_TEMPERATURE
dan
WRITE_SKIN_TEMPERATURE
.
Informasi yang disertakan dalam catatan suhu kulit
Pengukuran suhu kulit diatur ke dalam data. Setiap kumpulan data terdiri dari informasi berikut:
- Suhu dasar pengukuran, dalam derajat Celsius atau derajat Fahrenheit. Ini adalah nilai opsional yang paling berguna untuk visualisasi di UI aplikasi Anda.
- Daftar delta dalam suhu kulit, yang masing-masing menunjukkan perubahan suhu kulit sejak pengukuran terakhir. Jika suhu dasar disediakan, delta ini harus menggunakan unit suhu yang sama.
- Lokasi tubuh pengguna tempat pengukuran dilakukan: jari, jari kaki, atau pergelangan tangan.
Agregasi yang didukung
Health Connect memungkinkan Anda mendapatkan nilai gabungan berikut untuk daftar delta tertentu:
- Nilai minimum
- Nilai maksimum
- Nilai rata-rata
Membaca suhu kulit
Cuplikan kode berikut menunjukkan cara membaca pengukuran suhu kulit menggunakan library 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.
}
}
Menulis suhu kulit
Cuplikan kode berikut menunjukkan cara menulis pengukuran suhu kulit menggunakan library 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
)
)
)
}