寫入資料

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

以下範例說明如何在一般工作流程中寫入資料。

操作步驟

以下的程式碼範例顯示,如何編寫基本資料插入步驟計數:

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))
}

營養

Health Connect 中的營養資料類型相當龐大且全面。它的種類相當多元,從碳水化合物總量、維生素 D 和維生素 E 應有盡有。每個資料點代表可能作為膳食或食品的一部分攝入的營養素。

以下的程式碼範例顯示如何為吃香蕉的人輸入營養資料:

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))
}

系列資料

以下的程式碼範例顯示如何將心率系列資料寫入 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))
}