當「健康資料同步」新增功能時,使用者不一定會更新「健康資料同步」版本。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:
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 邏輯中提供合理的備用方案。