檢查功能適用的國家/地區

「健康資料同步」新增功能時,使用者不一定會更新「健康資料同步」版本。您可以使用「功能可用性」API,檢查使用者裝置是否支援 Health Connect 的功能,並決定要採取哪些動作。

開始使用

Feature Availability API 與 Health Connect SDK 共用相同的依附元件。如要開始使用,請確認 build.gradle 檔案中至少有 1.1.0-alpha08 版本:

dependencies {
  implementation("androidx.health.connect:connect-client:1.1.0-alpha08")
}

Feature flags

下表列出「健康資料同步」可用的功能旗標。如果使用者裝置不支援功能標記後方的功能,就無法使用該功能。

表格:健康資料同步功能可用性標記
功能旗標 資料類型 相關指南
FEATURE_ACTIVITY_INTENSITY 活動強度
FEATURE_EXTENDED_DEVICE_TYPES 擴充裝置類型 中繼資料規定
FEATURE_PERSONAL_HEALTH_RECORD 病歷 醫療記錄資料格式
寫入醫療資料
讀取醫療資料
FEATURE_MINDFULNESS_SESSION 正念 追蹤正念活動
FEATURE_PLANNED_EXERCISE 排定的運動 訓練計畫
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND 在背景讀取資料 背景讀取範例
FEATURE_READ_HEALTH_DATA_HISTORY 讀取歷來資料 讀取超過 30 天前的資料
FEATURE_SKIN_TEMPERATURE 皮膚溫度 測量皮膚溫度

執行檢查

檢查功能是否可用的主要函式是 getFeatureStatus()。這會傳回整數常數 FEATURE_STATUS_AVAILABLEFEATURE_STATUS_UNAVAILABLE

如要判斷使用者的裝置是否支援健康資料同步的「在背景讀取健康資料」功能,請檢查用戶端是否提供 FEATURE_READ_HEALTH_DATA_IN_BACKGROUND

if (healthConnectClient
     .features
     .getFeatureStatus(
       HealthConnectFeatures.FEATURE_READ_HEALTH_DATA_IN_BACKGROUND
     ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {

  // Feature is available
} else {
  // Feature isn't available
}

如需所有可用功能旗標的清單,請參閱 HealthConnectFeatures 參考頁面。

處理功能不適用問題

如果使用者裝置無法使用某項功能,更新後可能就能使用。如果使用者裝置上的「健康資料同步」不是最新支援版本,您可以考慮引導他們更新。不過,如果使用者透過 APK 安裝應用程式 (適用於 Android 13 以下版本),就無法使用僅適用於 Android 14 以上版本裝置的系統模組功能。

如果是擴充裝置類型,如果使用者裝置上沒有 FEATURE_EXTENDED_DEVICE_TYPES,這些值會視為 Device.TYPE_UNKNOWN。在寫入和 UI 邏輯中提供合理的備援。