Это руководство совместимо с Health Connect версии 1.1.0-alpha12 .
Health Connect предоставляет тип данных о температуре кожи для измерения периферической температуры тела. Это измерение является особенно полезным сигналом для определения качества сна, репродуктивного здоровья и потенциального возникновения заболеваний.
Требуемые разрешения
Как и в случае с любым типом данных в Health Connect, доступ к температуре кожи защищен парой разрешений : READ_SKIN_TEMPERATURE
и WRITE_SKIN_TEMPERATURE
.
Информация, включенная в запись температуры кожи
Измерения температуры кожи оформляются в виде записей . Каждая запись содержит следующую информацию:
- Базовая температура в градусах Цельсия или Фаренгейта. Это необязательное значение, которое наиболее полезно для визуализации в пользовательском интерфейсе вашего приложения.
- Список дельт температуры кожи, каждый из которых показывает изменение температуры кожи с момента последнего измерения. Если указана базовая температура, в этих дельтах должны использоваться одни и те же единицы измерения температуры.
- Место на теле пользователя, где было произведено измерение: палец руки, ноги или запястье.
Поддерживаемые агрегаты
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)
),
)
)
)
}