Declara los permisos adecuados

Los Servicios de salud en Wear OS usan los siguientes permisos distintos:

Consulta la siguiente tabla para determinar qué permisos son necesarios para tu app, según los tipos de datos de fitness que quieras presentar a los usuarios. Asegúrate de seguir los principios básicos para solicitar permisos, incluso solicitar permisos en contexto.

Si tu app se orienta a un nivel de API 36 o superior y usa PassiveMonitoringClient para acceder a la información del sensor corporal en segundo plano, solicita el permiso READ_HEALTH_DATA_IN_BACKGROUND. Si tu app se orienta a un nivel de API entre 33 y 35 inclusive, solicita los permisos BODY_SENSORS y BODY_SENSORS_BACKGROUND.

Tipo de datos Permiso
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

Migra para admitir el nivel de API 36

Si tu app está orientada a Wear OS 6 (nivel de API 36) o versiones posteriores, sigue estos pasos para migrar tu app y que admita las versiones más recientes de la plataforma de Wear OS:

  1. En tu archivo de manifiesto, agrega el maxSdkVersion para el permiso heredado, así como el permiso READ_HEART_RATE moderno:

    <uses-permission android:name="android.permission.BODY_SENSORS"
                     android:maxSdkVersion="35" />
    <uses-permission android:name="android.permission.health.READ_HEART_RATE" />
    
  2. Si tu app requiere acceso a los sensores corporales mientras se ejecuta en segundo plano, agrega maxSdkVersion para el permiso de segundo plano heredado y agrega el permiso READ_HEALTH_DATA_IN_BACKGROUND moderno:

    <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. Solicita y confirma que se otorgue el permiso de frecuencia cardíaca en todas las ubicaciones en las que la app verifique los permisos BODY_SENSOR y BODY_SENSORS_BACKGROUND, filtrando por versión de Wear OS. Por ejemplo:

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