「健康資料同步」資料類型格式

Health Connect 中的資料類型會儲存在 Record 的子類別物件中。

每種資料類型都有相關聯的欄位,可能是 timezoneOffset 等一般欄位,也可能是 titlecountpercentage 等特定欄位。有些欄位使用基本型別 (例如 long、double 或 string),有些則使用複雜型別,例如列舉和類別 (如 InstantZoneOffset)。這些欄位的屬性可以是必填或選填。部分屬性為唯讀,部分屬性則會限制在特定值範圍內。

如需可用資料類型及其欄位的完整清單,請參閱 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 資料時提供時區資訊。但是,在某些情況下可能會失敗,例如在未提供時區偏移資訊時。應用程式需要依據您的特定情況,準備處理這兩種資料。