Health Connect 不僅會儲存及建構健康與健身資料,也會控管不同資料類型的測量方式。這些資料類型包括立即測量心率、一段時間內的步數,以及時段內的睡眠資料。
請務必先瞭解 Health Connect 提供哪些資料類型和權限,以便規劃應用程式需求。因此,您必須先檢查資料類型,才能完成需求設定。
資料類型類別
Health Connect 支援多元資料類型,能盡可能滿足常見需求,Health Connect 致力於提供全方位健康與健身資料的總覽與儲存。這些資料類型可分為以下幾類:
- 活動:擷取使用者進行的任何活動,可以包括跑步和游泳等健康與健身活動。
- 身體測量:擷取與身體相關的常見資料,例如使用者的體重和基礎代謝率。
- 週期追蹤:擷取月經週期及相關資料點,例如排卵測試的二元結果。
- 營養:擷取水份和營養資料類型,前者代表使用者一次飲用的水量,後者則有卡路里、糖和鎂等選用欄位。
- 睡眠:擷取與使用者睡眠長度和睡眠類型相關的區間資料。
- 生命徵象:擷取使用者重要的總體健康資訊,包括體溫、血糖、血壓和血氧濃度等資料。
資料類型格式
Health Connect 中的資料類型會儲存在物件中,這些物件是 Record
的子類別。
每個資料類型都有相關聯的欄位,這些欄位可能是一般欄位 (例如 time
和 zoneOffset
),也可能是特定欄位 (例如 title
、count
和 percentage
)。有些欄位會使用簡單類型,例如 long、double 或字串,而其他欄位則會使用複雜類型,例如 Instant
和 ZoneOffset
這類的列舉和類別。這些欄位的屬性可以是必填或選填。部分屬性為唯讀,部分屬性則會受到特定值範圍的限制。
如需可用資料類型及其欄位的完整清單,請參閱 Jetpack 中的類別。
其他資料屬性
Health Connect API 中的資料也會提供以下清單中描述的中繼資料屬性:
- Health Connect ID:系統會在建立每個資料點時指派一組專屬 ID (UID)。這對標準讀取和寫入作業來說非常實用。詳情請參閱「健康資料同步 ID」。
- 上次修改時間:標示最後一次更新記錄的時間戳記,這會在首次建立記錄或每次更新時自動產生。
- 資料來源:Health Connect 會儲存應用程式的資料來源相關資訊。這項屬性包含來源的套件名稱,系統會在建立來源時自動加入這項屬性。
- 裝置:Health Connect 會儲存裝置的資料來源相關資訊。這項屬性包含您手動提供的裝置製造商和型號。
- 用戶端 ID:Health Connect 會提供用戶端 ID,方便用戶端應用程式使用自己的 ID 參照資料,這有助於解決衝突問題並簡化同步處理程序。這項資訊須手動提供給記錄。
- 用戶端記錄版本:除了用戶端 ID 外,Health Connect 也提供版本管理功能,可協助您追蹤資料同步處理期間的變更。這項資訊須手動提供給記錄。
- 記錄方式:Health Connect 可讓您瞭解資料的記錄方式。這些方法包括應用程式被動 (自動) 記錄資料,以及使用者主動或手動記錄資料。
Health Connect ID
Health Connect 會為新插入的資料物件指派專屬 ID (UID),用於識別資料物件並與其他物件區分開來。Health Connect ID 可用於讀取或寫入要求。Health Connect ID 與用戶端 ID 不同。用戶端應用程式會指派用戶端 ID,Health Connect 則會指派專屬的 Health Connect ID。
使用 Health Connect ID 時,請注意下列事項:
- 工作階段有單一 Health Connect ID,但工作階段內的資料各有專屬的 Health Connect ID。
- Health Connect ID 不會與時間戳記綁定或相關聯。
- 某些用途可能需要在工作流程中儲存特定的 Health Connect ID。例如,您需要使用特定 ID 擷取使用者剛剛記錄的資料項目,並向他們顯示。
Health Connect 中的時間
所有寫入 Health Connect 的資料都必須指定時區偏移資訊。指定時區偏移,可讓應用程式讀取資料,以民用時間表示資料。「民用時間」是指與使用者相關的當地時間,不一定是世界標準時間 (UTC)。
在極少數情況下,您可能無法使用時區偏移。在 Android 14 (API 級別 34) 中發生這種情況時,Health Connect 會根據裝置的系統預設時區設定時區偏移量。在 Android 13 以下版本 (API 級別 33 以下) 中,即使沒有指定任何時區偏移資訊,也能將資料寫入 Health Connect,但請盡量避免這種情況。
時間和時區設定
在寫入資料時指定時區偏移資訊,就能在讀取 Health Connect 資料時提供時區資訊。不過,在某些情況下可能會失敗,例如在未提供時區偏移資訊時。應用程式需要依據您的特定情況,準備處理這兩種資料。
權限
要求任何權限之前,應用程式必須先在資訊清單中宣告權限。下表列出資料類型與權限的完整對應。
適用於 1.0.0-alpha10 以上版本
記錄類別類型 | 讀取及寫入權限聲明 |
---|---|
ActiveCaloriesBurned |
android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED |
BasalBodyTemperature |
android.permission.health.READ_BASAL_BODY_TEMPERATURE
android.permission.health.WRITE_BASAL_BODY_TEMPERATURE |
BasalMetabolicRate |
android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE |
BloodGlucose |
android.permission.health.READ_BLOOD_GLUCOSE
android.permission.health.WRITE_BLOOD_GLUCOSE |
BloodPressure |
android.permission.health.READ_BLOOD_PRESSURE
android.permission.health.WRITE_BLOOD_PRESSURE |
BodyFat |
android.permission.health.READ_BODY_FAT
android.permission.health.WRITE_BODY_FAT |
BodyTemperature |
android.permission.health.READ_BODY_TEMPERATURE
android.permission.health.WRITE_BODY_TEMPERATURE |
BodyWaterMass |
android.permission.health.READ_BODY_WATER_MASS
android.permission.health.WRITE_BODY_WATER_MASS |
BoneMass |
android.permission.health.READ_BONE_MASS
android.permission.health.WRITE_BONE_MASS |
CervicalMucus |
android.permission.health.READ_CERVICAL_MUCUS
android.permission.health.WRITE_CERVICAL_MUCUS |
CyclingPedalingCadence |
android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE |
Distance |
android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE |
ElevationGained |
android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED |
ExerciseSession |
android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE |
FloorsClimbed |
android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED |
HeartRate |
android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE |
HeartRateVariabilityRmssd |
android.permission.health.READ_HEART_RATE_VARIABILITY
android.permission.health.WRITE_HEART_RATE_VARIABILITY |
Height |
android.permission.health.READ_HEIGHT
android.permission.health.WRITE_HEIGHT |
Hydration |
android.permission.health.READ_HYDRATION
android.permission.health.WRITE_HYDRATION |
IntermenstrualBleeding |
android.permission.health.READ_INTERMENSTRUAL_BLEEDING
android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING |
LeanBodyMass |
android.permission.health.READ_LEAN_BODY_MASS
android.permission.health.WRITE_LEAN_BODY_MASS |
MenstruationFlow |
android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION |
MenstruationPeriod |
android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION |
Nutrition |
android.permission.health.READ_NUTRITION
android.permission.health.WRITE_NUTRITION |
OvulationTest |
android.permission.health.READ_OVULATION_TEST
android.permission.health.WRITE_OVULATION_TEST |
OxygenSaturation |
android.permission.health.READ_OXYGEN_SATURATION
android.permission.health.WRITE_OXYGEN_SATURATION |
PlannedExercise |
android.permission.health.READ_PLANNED_EXERCISE
android.permission.health.WRITE_PLANNED_EXERCISE |
Power |
android.permission.health.READ_POWER
android.permission.health.WRITE_POWER |
RespiratoryRate |
android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE |
RestingHeartRate |
android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE |
SexualActivity |
android.permission.health.READ_SEXUAL_ACTIVITY
android.permission.health.WRITE_SEXUAL_ACTIVITY |
SkinTemperature |
androidx.health.permission.SkinTemperature.READ
androidx.health.permission.SkinTemperature.WRITE |
SleepSession |
android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP |
Speed |
android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED |
StepsCadence |
android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS |
Steps |
android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS |
TotalCaloriesBurned |
android.permission.health.READ_TOTAL_CALORIES_BURNED
android.permission.health.WRITE_TOTAL_CALORIES_BURNED |
Vo2Max |
android.permission.health.READ_VO2_MAX
android.permission.health.WRITE_VO2_MAX |
Weight |
android.permission.health.READ_WEIGHT
android.permission.health.WRITE_WEIGHT |
WheelchairPushes |
android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES |
適用於 1.0.0-alpha09 以下版本
記錄類別類型 | 讀取及寫入權限聲明 |
---|---|
ActiveCaloriesBurned |
androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE |
BasalBodyTemperature |
androidx.health.permission.BasalBodyTemperature.READ
androidx.health.permission.BasalBodyTemperature.WRITE |
BasalMetabolicRate |
androidx.health.permission.BasalMetabolicRate.READ
androidx.health.permission.BasalMetabolicRate.WRITE |
BloodGlucose |
androidx.health.permission.BloodGlucose.READ
androidx.health.permission.BloodGlucose.WRITE |
BloodPressure |
androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE |
BodyFat |
androidx.health.permission.BodyFat.READ
androidx.health.permission.BodyFat.WRITE |
BodyTemperature |
androidx.health.permission.BodyTemperature.READ
androidx.health.permission.BodyTemperature.WRITE |
BodyWaterMass |
androidx.health.permission.BodyWaterMass.READ
androidx.health.permission.BodyWaterMass.WRITE |
BoneMass |
androidx.health.permission.BoneMass.READ
androidx.health.permission.BoneMass.WRITE |
CervicalMucus |
androidx.health.permission.CervicalMucus.READ
androidx.health.permission.CervicalMucus.WRITE |
CyclingPedalingCadence |
androidx.health.permission.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE |
Distance |
androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE |
ElevationGained |
androidx.health.permission.ElevationGeted.READ
androidx.health.permission.ElevationGeted.WRITE |
ExerciseSession |
androidx.health.permission.ExerciseSession.READ
androidx.health.permission.ExerciseSession.WRITE |
FloorsClimbed |
androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE |
HeartRate |
androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE |
HeartRateVariabilityRmssd |
androidx.health.permission.HeartRateVariabilityRmssd.READ
androidx.health.permission.HeartRateVariabilityRmssd.WRITE |
Height |
androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE |
Hydration |
androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE |
IntermenstrualBleeding |
androidx.health.permission.IntermenstrualBleeding.READ
androidx.health.permission.IntermenstrualBleeding.WRITE |
LeanBodyMass |
androidx.health.permission.LeanBodyMass.READ
androidx.health.permission.LeanBodyMass.WRITE |
MenstruationFlow |
androidx.health.permission.MenstruationFlow.READ
androidx.health.permission.MenstruationFlow.WRITE |
Nutrition |
androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE |
OvulationTest |
androidx.health.permission.OvulationTest.READ
androidx.health.permission.OvulationTest.WRITE |
OxygenSaturation |
androidx.health.permission.OxygenSaturation.READ
androidx.health.permission.OxygenSaturation.WRITE |
Power |
androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE |
RespiratoryRate |
androidx.health.permission.RespiratoryRate.READ
androidx.health.permission.RespiratoryRate.WRITE |
RestingHeartRate |
androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE |
SexualActivity |
androidx.health.permission.SexualActivity.READ
androidx.health.permission.SexualActivity.WRITE |
SleepSession |
androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE |
Speed |
androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE |
StepsCadence |
androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE |
Steps |
androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE |
TotalCaloriesBurned |
androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE |
Vo2Max |
androidx.health.permission.Vo2Max.READ
androidx.health.permission.Vo2Max.WRITE |
Weight |
androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE |
WheelchairPushes |
androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE |
查看資料類型和權限
您現在已規劃好資料類型和權限,因此可以在開發期間導入這些資訊。
在將應用程式上傳至 Play 商店前,請先檢查應用程式所需的資料類型和權限清單。這樣一來,您就能正確宣告應用程式的資料使用方式。
準備將應用程式發布至 Play 商店時,請宣告應用程式使用的 Health Connect 資料類型。否則,使用者可能會收到錯誤訊息,指出應用程式無法存取 Health Connect 資料類型,因為這些類型需要特殊核准。