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

當「健康資料同步」新增功能時,使用者不一定會更新「健康資料同步」版本。Feature Availability API 可用來檢查使用者的裝置是否支援健康資料同步中的功能,並決定要採取什麼行動。

開始使用

Feature Availability API 與健康資料同步 SDK 具有相同的依附元件。首先,請確認 build.gradle 檔案中至少有 1.1.0-alpha08 版本:

dependencies {
  implementation("androidx.health.connect:connect-client:1.2.0-alpha06")
}

功能旗標

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

表格:健康資料同步功能可用性旗標
功能旗標 資料類型 相關指南
FEATURE_ACTIVITY_INTENSITY 活動強度 健身
FEATURE_EXTENDED_DEVICE_TYPES 擴充裝置類型 中繼資料規定
FEATURE_MATCHMAKING 交友配對
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_AVAILABLE 或 FEATURE_STATUS_UNAVAILABLE:

如要判斷使用者的裝置是否支援 Health Connect 的「在背景讀取健康資料」功能,請檢查用戶端是否提供 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 邏輯中提供合理的備用方案。