Đo nhiệt độ trên da

Health Connect cung cấp loại dữ liệu nhiệt độ trên da để đo nhiệt độ ngoại vi của cơ thể. Phép đo này là một tín hiệu đặc biệt hữu ích để phát hiện chất lượng giấc ngủ, sức khoẻ sinh sản và khả năng khởi phát bệnh tật.

Các quyền bắt buộc

Giống như mọi loại dữ liệu trong Health Connect, quyền truy cập vào nhiệt độ da được bảo vệ bằng một cặp quyền: READ_SKIN_TEMPERATUREWRITE_SKIN_TEMPERATURE.

Thông tin có trong bản ghi nhiệt độ trên da

Các phép đo nhiệt độ trên da được sắp xếp thành bản ghi. Mỗi bản ghi bao gồm các thông tin sau:

  • Nhiệt độ cơ sở, tính bằng độ C hoặc độ F. Đây là một giá trị không bắt buộc và hữu ích nhất để trực quan hoá trong giao diện người dùng của ứng dụng.
  • Danh sách delta về nhiệt độ trên da, mỗi delta cho biết mức thay đổi về nhiệt độ trên da kể từ lần đo gần đây nhất. Nếu nhiệt độ cơ sở được cung cấp, các delta này phải sử dụng cùng một đơn vị nhiệt độ.
  • Vị trí trên cơ thể người dùng nơi đo lường: ngón tay, ngón chân hoặc cổ tay.

Phương pháp tổng hợp được hỗ trợ

Health Connect cho phép bạn nhận các giá trị tổng hợp sau đây cho một danh sách các delta nhất định:

  • Giá trị tối thiểu
  • Giá trị tối đa
  • Giá trị trung bình

Đọc dữ liệu về nhiệt độ trên da

Đoạn mã sau đây cho biết cách đọc kết quả đo nhiệt độ trên da bằng thư viện 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.
    }
}

Ghi dữ liệu về nhiệt độ trên da

Đoạn mã sau đây cho biết cách ghi kết quả đo nhiệt độ da bằng thư viện 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
            )
        )
    )
}