Ghi dữ liệu

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Các ví dụ sau đây cho bạn biết cách ghi dữ liệu trong một quy trình thông thường.

Các bước

Ví dụ về mã sau đây cho thấy cách ghi dữ liệu cơ bản về chèn số bước đi:

suspend fun insertSteps(healthConnectClient: HealthConnectClient) {
    val stepsRecord =
        StepsRecord(
            count = 120,
            startTime = START_TIME,
            endTime = END_TIME,
            startZoneOffset = START_ZONE_OFFSET,
            endZoneOffset = END_ZONE_OFFSET,
        )
    healthConnectClient.insertRecords(listOf(stepsRecord))
}

Dinh dưỡng

Loại dữ liệu dinh dưỡng trong Health Connect rất rộng lớn và toàn diện. Nó bao gồm nhiều loại chất dinh dưỡng, không bắt buộc, từ tổng lượng carb đến vitamin D và vitamin E. Mỗi điểm dữ liệu thể hiện những chất dinh dưỡng có thể tiêu thụ trong bữa ăn hoặc món ăn.

Ví dụ mã sau đây chỉ ra cách chèn dữ liệu dinh dưỡng cho một người dùng khi ăn chuối:

suspend fun insertNutrition(healthConnectClient: HealthConnectClient) {
    val banana =
        NutritionRecord(
            name = "banana",
            energy = 105.0.kilocalories,
            dietaryFiber = 3.1.grams,
            potassium = 0.422.grams,
            totalCarbohydrate = 27.0.grams,
            totalFat = 0.4.grams,
            saturatedFat = 0.1.grams,
            sodium = 0.001.grams,
            sugar = 14.0.grams,
            vitaminB6 = 0.0005.grams,
            vitaminC = 0.0103.grams,
            startTime = START_TIME,
            endTime = END_TIME,
            startZoneOffset = START_ZONE_OFFSET,
            endZoneOffset = END_ZONE_OFFSET,
        )
    healthConnectClient.insertRecords(listOf(banana))
}

Dữ liệu về chuỗi sự kiện

Ví dụ về mã sau đây cho thấy cách ghi dữ liệu về chuỗi nhịp tim vào Health Connect.

suspend fun insertHeartRateSeries(healthConnectClient: HealthConnectClient) {
    val heartRateRecord =
        HeartRateRecord(
            startTime = START_TIME,
            startZoneOffset = START_ZONE_OFFSET,
            endTime = END_TIME,
            endZoneOffset = END_ZONE_OFFSET,
            // records 10 arbitrary data, to replace with actual data
            samples =
                List(10) { index ->
                    HeartRateRecord.Sample(
                        time = START_TIME + Duration.ofSeconds(index.toLong()),
                        beatsPerMinute = 100 + index.toLong(),
                    )
                },
        )
    healthConnectClient.insertRecords(listOf(heartRateRecord))
}