Pomiar temperatury skóry

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