以下範例說明如何在一般工作流程中寫入資料。
操作步驟
以下的程式碼範例顯示,如何編寫基本資料插入步驟計數:
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))
}