Misurare la temperatura cutanea

Connessione Salute fornisce un tipo di dati sulla temperatura cutanea per misurare la temperatura corporea periferica. Questa misurazione è particolarmente utile per rilevare la qualità del sonno, la salute riproduttiva e la potenziale insorgenza di malattia.

Autorizzazioni richieste

Come per qualsiasi tipo di dati in Connessione Salute, l'accesso alla temperatura cutanea è protetto da una coppia di autorizzazioni: READ_SKIN_TEMPERATURE e WRITE_SKIN_TEMPERATURE.

Informazioni incluse in un record della temperatura cutanea

Le misurazioni della temperatura cutanea sono organizzate in record. Ogni record è costituito dalle seguenti informazioni:

  • Temperatura di riferimento in gradi Celsius o Fahrenheit. Si tratta di un valore facoltativo più utile per la visualizzazione nell'interfaccia utente dell'app.
  • Un elenco di delta della temperatura cutanea, ciascuno che mostra la variazione della temperatura cutanea dall'ultima misurazione. Se viene fornita la temperatura di riferimento, questi delta devono utilizzare le stesse unità di misura della temperatura.
  • La posizione sul corpo dell'utente in cui è stata effettuata la misurazione: dito, dito del piede o polso.

Aggregazioni supportate

Connessione Salute ti consente di ottenere i seguenti valori aggregati per un determinato elenco di delta:

  • Valore minimo
  • Valore massimo
  • Valore medio

Leggere la temperatura cutanea

Il seguente snippet di codice mostra come leggere le misurazioni della temperatura cutanea utilizzando la libreria 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.
    }
}

Scrivere la temperatura cutanea

Lo snippet di codice seguente mostra come scrivere le misurazioni della temperatura cutanea utilizzando la libreria 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
            )
        )
    )
}