Измерьте температуру кожи

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)

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