Mesurer la température cutanée

Santé Connect fournit un type de données température cutanée pour mesurer la température corporelle périphérique. Cette mesure est un signal particulièrement utile pour détecter la qualité du sommeil, la santé reproductive et l'apparition potentielle d'une maladie.

Autorisations requises

Comme pour tout type de données dans Santé Connect, l'accès à la température cutanée est protégé par une paire d'autorisations: READ_SKIN_TEMPERATURE et WRITE_SKIN_TEMPERATURE.

Informations incluses dans un enregistrement de température cutanée

Les mesures de la température cutanée sont organisées en enregistrements. Chaque enregistrement se compose des informations suivantes:

  • Température de référence, en degrés Celsius ou Fahrenheit. Il s'agit d'une valeur facultative qui est particulièrement utile pour la visualisation dans l'interface utilisateur de votre application.
  • Une liste de deltas de température cutanée, chacun indiquant l'évolution de la température cutanée depuis la dernière mesure. Si la température de référence est fournie, ces deltas doivent utiliser les mêmes unités de température.
  • Emplacement sur le corps de l'utilisateur où la mesure a été effectuée: doigt, orteil ou poignet.

Agrégations compatibles

Santé Connect vous permet d'obtenir les valeurs agrégées suivantes pour une liste donnée de deltas:

  • Valeur minimale
  • Valeur maximale
  • Valeur moyenne

Lire la température cutanée

L'extrait de code suivant montre comment lire les mesures de température cutanée à l'aide de la bibliothèque 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.
    }
}

Indiquer la température cutanée

L'extrait de code suivant montre comment écrire des mesures de température de la peau à l'aide de la bibliothèque 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
            )
        )
    )
}