当健康数据共享添加新功能时,用户可能不会总是更新其健康数据共享版本。借助功能可用性 API,您可以检查健康数据共享中的某项功能在用户设备上是否可用,并决定要采取的操作。
开始使用
功能可用性 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_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。在写入和界面逻辑中提供合理的后备方案。