Ten przewodnik jest zgodny z wersją Health Connect 1.1.0-alpha12.
Health Connect udostępnia typ danych temperatura skóry do pomiaru temperatury obwodowej ciała. Ten pomiar jest szczególnie przydatnym sygnałem w przypadku wykrywania jakości snu, zdrowia reprodukcyjnego i potencjalnego początku choroby.
Wymagane uprawnienia
Podobnie jak w przypadku innych typów danych w Health Connect, dostęp do temperatury skóry jest chroniony przez 2 uprawnienia: READ_SKIN_TEMPERATURE
i WRITE_SKIN_TEMPERATURE
.
Informacje zawarte w rekordzie temperatury skóry
Pomiary temperatury skóry są uporządkowane w rekordy. Każdy rekord zawiera te informacje:
- Temperatura bazowa w stopniach Celsjusza lub Fahrenheita. Jest to opcjonalna wartość, która jest najbardziej przydatna do wizualizacji w interfejsie aplikacji.
- Lista różnic temperatury skóry, z których każda pokazuje zmianę temperatury skóry od ostatniego pomiaru. Jeśli podana jest temperatura bazowa, te różnice powinny być wyrażone w tych samych jednostkach temperatury.
- Lokalizacja na ciele użytkownika, w której dokonano pomiaru: palec, stopa lub nadgarstek.
Obsługiwane agregacje
Zarządzanie danymi o zdrowiu umożliwia uzyskanie tych wartości zbiorczych dla danej listy delta:
- Wartość minimalna
- Wartość maksymalna
- Średnia wartość
Odczytuj temperaturę skóry
Ten fragment kodu pokazuje, jak odczytywać pomiary temperatury skóry za pomocą biblioteki 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.
}
}
Zapisuj temperaturę skóry
Ten fragment kodu pokazuje, jak zapisywać pomiary temperatury ciała za pomocą biblioteki 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)
),
)
)
)
}