检查功能可用性

向健康数据共享添加新功能后,用户可能不会总是更新其健康数据共享版本。借助 Feature Availability API,您可以检查用户设备上是否有健康数据共享中的某项功能,并决定要采取的操作。

开始使用

Feature Availability API 与健康数据共享 SDK 共享相同的依赖项。如需开始使用,请验证 build.gradle 文件中是否至少包含版本 1.1.0-alpha08

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

功能标志

下表列出了可用于健康数据共享的功能标志。如果用户的设备不支持某项功能,则无法使用该功能标志背后的功能。

表:健康数据共享功能可用性标志
功能标志 数据类型 相关指南
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_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。在写入和界面逻辑中提供合理的后备方案。