피부 온도 측정

헬스 커넥트는 말초 체온을 측정하는 피부 온도 데이터 유형을 제공합니다. 이 측정은 수면의 질, 생식 건강 및 잠재적 질병의 발병 여부를 감지하는 데 특히 유용한 신호입니다.

필수 권한

헬스 커넥트의 다른 데이터 유형과 마찬가지로 피부 온도에 대한 액세스는 READ_SKIN_TEMPERATUREWRITE_SKIN_TEMPERATURE이라는 권한 쌍으로 보호됩니다.

피부 온도 기록에 포함된 정보

피부 온도 측정은 기록으로 구성됩니다. 각 레코드는 다음 정보로 구성됩니다.

  • 기준 온도(섭씨 또는 화씨) 이 값은 앱 UI에서 시각화하는 데 가장 유용한 선택적 값입니다.
  • 피부 온도의 델타 목록으로, 각 델타는 마지막 측정 이후의 피부 온도 변화를 보여줍니다. 기준 온도가 제공된 경우 이러한 변화량은 동일한 온도 단위를 사용해야 합니다.
  • 측정이 이루어진 사용자 신체의 위치입니다(손가락, 발가락, 손목).

지원되는 집계

헬스 커넥트를 사용하면 특정 대수 목록에 대해 다음과 같은 집계 값을 가져올 수 있습니다.

  • 최솟값
  • 최댓값
  • 평균값

피부 온도 읽기

다음 코드 스니펫은 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.
    }
}

피부 온도 쓰기

다음 코드 스니펫은 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
            )
        )
    )
}