Health Connect 中的資料類型會儲存在 Record
的子類別物件中。
每種資料類型都有相關聯的欄位,可能是 time
和 zoneOffset
等一般欄位,也可能是 title
、count
和 percentage
等特定欄位。有些欄位使用基本型別 (例如 long、double 或 string),有些則使用複雜型別,例如列舉和類別 (如 Instant
和 ZoneOffset
)。這些欄位的屬性可以是必填或選填。部分屬性為唯讀,部分屬性則會限制在特定值範圍內。
如需可用資料類型及其欄位的完整清單,請參閱 Jetpack 中的類別。
中繼資料屬性
Health Connect API 中的資料也會提供以下清單中描述的中繼資料屬性:
- Health Connect ID:系統會在建立每個資料點時指派一組專屬 ID (UID)。這適用於標準讀取和寫入作業。詳情請參閱「健康資料同步 ID」。
- 上次修改時間:標示最後一次更新記錄的時間戳記,這會在首次建立記錄或每次更新時自動產生。
- 資料來源:Health Connect 會儲存應用程式的資料來源相關資訊。這項屬性會顯示系統在建立來源時自動加入的來源套件名稱。
- 裝置:Health Connect 會儲存裝置的資料來源相關資訊。這項屬性會顯示您手動提供的裝置製造商和型號。
- 用戶端 ID:Health Connect 會提供用戶端 ID,方便用戶端應用程式使用自己的 ID 參照資料,協助解決衝突問題並簡化同步處理程序。這項資訊須手動提供給記錄。
- 用戶端記錄版本:除了用戶端 ID 外,健康資料同步也提供版本管理功能,可協助您追蹤資料同步處理期間的變更。這項資訊須手動提供給記錄。
- 記錄方式:透過「健康資料同步」,你可以瞭解資料的記錄方式。 這些方法包括應用程式被動 (自動) 記錄資料,以及使用者主動或手動記錄資料。
健康資料同步 ID
Health Connect 會為新插入的資料物件指派專屬 ID (UID),用來識別資料物件並與其他物件區別。在讀取或寫入要求中,Health Connect ID 很有用。健康資料同步 ID 與用戶端 ID 不同。用戶端應用程式會指派用戶端 ID,而 Health Connect 則會指派專屬的 Health Connect ID。
使用健康資料同步 ID 時,請注意以下幾點:
- 工作階段有單一健康資料同步 ID,但工作階段內的資料各有專屬的健康資料同步 ID。
- 「健康資料同步」ID 與時間戳記之間沒有關聯,也不相關。
- 某些用途可能需要在工作流程中儲存特定的「健康資料同步」ID。舉例來說,如要擷取並向使用者顯示剛記錄的資料項目,就必須使用特定 ID。
Health Connect 中的時間
所有寫入健康資料同步的資料都必須指定時區偏移資訊。指定時區偏移,可讓應用程式讀取資料並以民用時間表示資料。「民用時間」是指與使用者相關的當地時間,不一定是世界標準時間 (UTC)。
在極少數情況下,您可能無法使用時區偏移。在 Android 14 (API 級別 34) 中發生這種情況時,健康資料同步會根據裝置的系統預設時區設定時區偏移量。在 Android 13 以下版本 (API 級別 33 以下) 中,即使沒有指定任何時區偏移資訊,也可以寫入健康資料同步,但請盡量避免這種做法。
設定時間和時區
在寫入資料時指定時區偏移資訊,就能在讀取 Health Connect 資料時提供時區資訊。但是,在某些情況下可能會失敗,例如在未提供時區偏移資訊時。應用程式需要依據您的特定情況,準備處理這兩種資料。