Wear OS 上的 Health Services 使用以下不同权限
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) }