当“健康数据共享”中添加新功能时,用户不一定会更新其“健康数据共享”版本。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 |
体表温度 |
Vitals 测量体表温度 |
执行检查
用于检查功能可用性的主要函数是 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。在写入和界面逻辑中提供合理的后备方案。