Wear OS 上的健康服务使用以下各不相同的权限:
READ_HEART_RATE
,用于读取心率信息。ACTIVITY_RECOGNITION
ACCESS_FINE_LOCATION
BODY_SENSORS
(Wear OS 5.1 [API 级别 35] 及更低版本)BODY_SENSORS_BACKGROUND
(介于 Wear OS 4 [API 级别 33] 和 Wear OS 5.1 [API 级别 35] 之间)
根据您要向用户显示的健身数据类型,参阅下表确定您的应用需要哪些权限。请务必遵循请求权限的基本原则,包括在上下文中请求权限。
如果您的应用以 API 级别 36 或更高级别为目标平台,并且使用 PassiveMonitoringClient
在后台访问身体传感器信息,请请求 READ_HEALTH_DATA_IN_BACKGROUND
权限。如果您的应用以 API 级别 33 到 35(包括这两个数值)为目标平台,请改为同时请求 BODY_SENSORS
和 BODY_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 平台:
在清单文件中,为旧版权限添加
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" />
如果您的应用在后台运行时需要访问身体传感器,请为旧版后台权限添加
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" />
在应用检查
BODY_SENSOR
和BODY_SENSORS_BACKGROUND
权限的所有位置,请求并确认已授予心率权限,并按 Wear OS 版本进行过滤。例如:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA) { this.add(HealthPermissions.READ_HEART_RATE) }