Hauttemperatur messen

Health Connect bietet einen Hauttemperatur-Datentyp, um die Körpertemperatur von Peripheriegeräten zu messen. Diese Messung ist ein besonders nützliches Signal für die Schlafqualität, die reproduktive Gesundheit und den potenziellen Ausbruch von Krankheiten.

Erforderliche Berechtigungen

Wie bei allen Datentypen in Health Connect ist der Zugriff auf die Hauttemperatur durch zwei Berechtigungen geschützt: READ_SKIN_TEMPERATURE und WRITE_SKIN_TEMPERATURE.

Informationen in einer Aufzeichnung der Hauttemperatur

Die Messungen der Hauttemperatur werden in Datensätzen organisiert. Jeder Eintrag besteht aus den folgenden Informationen:

  • Grundlagetemperatur in Grad Celsius oder Grad Fahrenheit. Dies ist ein optionaler Wert, der zur Visualisierung in der UI Ihrer Anwendung am nützlichsten ist.
  • Eine Liste mit Deltas der Hauttemperatur, die jeweils die Veränderung der Hauttemperatur seit der letzten Messung darstellen. Wenn die Baseline-Temperatur angegeben ist, sollten für diese Deltas dieselben Temperatureinheiten verwendet werden.
  • Die Stelle am Körper des Nutzers, an der die Messung durchgeführt wurde: Finger, Zeh oder Handgelenk.

Unterstützte Aggregationen

Mit Health Connect können Sie die folgenden zusammengefassten Werte für eine bestimmte Liste von Deltas abrufen:

  • Mindestwert
  • Maximalwert
  • Durchschnittswert

Hauttemperatur lesen

Das folgende Code-Snippet zeigt, wie Sie Messungen der Hauttemperatur mit der Jetpack-Bibliothek lesen:

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

Hauttemperatur schreiben

Das folgende Code-Snippet zeigt, wie Sie mit der Jetpack-Bibliothek Messungen der Hauttemperatur aufzeichnen:


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