声明相应权限

Wear OS 上的健康服务使用以下各不相同的权限:

根据您要向用户显示的健身数据类型,参阅下表确定您的应用需要哪些权限。请务必遵循请求权限的基本原则,包括在上下文中请求权限。

如果您的应用以 API 级别 36 或更高级别为目标平台,并且使用 PassiveMonitoringClient 在后台访问身体传感器信息,请请求 READ_HEALTH_DATA_IN_BACKGROUND 权限。如果您的应用以 API 级别 33 到 35(包括这两个数值)为目标平台,请改为同时请求 BODY_SENSORSBODY_SENSORS_BACKGROUND 权限。

数据类型 权限
CALORIES
CALORIES_DAILY
DISTANCE_DAILY
DECLINE_DISTANCE
DISTANCE
ELEVATION_GAIN
ELEVATION_LOSS
FLAT_GROUND_DISTANCE
FLOORS
FLOORS_DAILY
GOLF_SHOT_COUNT
INCLINE_DISTANCE
PACE
REP_COUNT
RUNNING_STEPS
SPEED
STEPS
STEPS_DAILY
STEPS_PER_MINUTE
SWIMMING_LAP_COUNT
SWIMMING_STROKES
CALORIES_TOTAL
WALKING_STEPS
UserActivityInfo
UserActivityState
ACTIVITY_RECOGNITION
HEART_RATE_BPM READ_HEART_RATE
ABSOLUTE_ELEVATION
LOCATION
ACCESS_FINE_LOCATION

迁移以支持 API 级别 36

如果您的应用以 Wear OS 6(API 级别 36)或更高版本为目标平台,请按照以下步骤迁移您的应用,以支持最新版本的 Wear OS 平台:

  1. 在清单文件中,为旧版权限添加 maxSdkVersion,并添加新版 READ_HEART_RATE 权限:

    <uses-permission android:name="android.permission.BODY_SENSORS"
                     android:maxSdkVersion="35" />
    <uses-permission android:name="android.permission.health.READ_HEART_RATE" />
    
  2. 如果您的应用在后台运行时需要访问身体传感器,请为旧版后台权限添加 maxSdkVersion,并添加新型 READ_HEALTH_DATA_IN_BACKGROUND 权限:

    <uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND"
                     android:maxSdkVersion="35" />
    <uses-permission android:name="android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND" />
    
  3. 在应用检查 BODY_SENSORBODY_SENSORS_BACKGROUND 权限的所有位置,请求并确认已授予心率权限,并按 Wear OS 版本进行过滤。例如:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA) {
        this.add(HealthPermissions.READ_HEART_RATE)
    }