Mide la temperatura cutánea

Health Connect proporciona un tipo de datos de temperatura cutánea para medir la temperatura corporal periférica. Esta medición es un indicador útil para detectar la calidad del sueño, la salud reproductiva y la posible aparición de enfermedades.

Permisos necesarios

Al igual que con cualquier tipo de datos en Health Connect, el acceso a la temperatura de la piel está protegido por un par de permisos: READ_SKIN_TEMPERATURE y WRITE_SKIN_TEMPERATURE.

Información incluida en un registro de temperatura cutánea

Las mediciones de la temperatura cutánea se organizan en registros. Cada registro consta de la siguiente información:

  • Temperatura del modelo de referencia, en grados Celsius o Fahrenheit Este es un valor opcional que es más útil para la visualización en la IU de tu app.
  • Una lista de deltas en la temperatura cutánea, cada una de las cuales muestra el cambio en la temperatura cutánea desde la última medición. Si se proporciona la temperatura del modelo de referencia, estos deltas deben usar las mismas unidades de temperatura.
  • La ubicación del cuerpo del usuario en la que se tomó la medición: dedo, pie o muñeca.

Agregaciones admitidas

Health Connect te permite obtener los siguientes valores agregados para una lista determinada de deltas:

  • Valor mínimo
  • Valor máximo
  • Valor promedio

Lee la temperatura cutánea

En el siguiente fragmento de código, se muestra cómo leer las mediciones de la temperatura cutánea con la biblioteca de 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.
    }
}

Escribe la temperatura cutánea

En el siguiente fragmento de código, se muestra cómo escribir mediciones de la temperatura de la piel con la biblioteca de 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
            )
        )
    )
}