Solicita acceso en segundo plano a los datos del sensor corporal

Android 13 y Wear OS 4 presentan una manera para que las apps accedan a los sensores corporales, como la frecuencia cardíaca, en segundo plano. Este nuevo modelo de acceso es similar al que introdujo el acceso a la ubicación en segundo plano en Android 10 (nivel de API 29).

Si tu app necesita acceder a la información del sensor corporal en segundo plano, como cuando se supervisan los datos de los Servicios de salud en segundo plano, debes solicitar el permiso BODY_SENSORS_BACKGROUND.

Como se describe en la página de prácticas recomendadas de privacidad, las apps solo deben solicitar el permiso BODY_SENSORS_BACKGROUND cuando sea fundamental para la función del usuario, y deben divulgarlo de forma clara.

El proceso para otorgar el permiso depende de la versión del SDK de destino de tu app.

La app tiene como objetivo Android 13 o versiones posteriores

Además del permiso BODY_SENSORS existente, declara el permiso BODY_SENSORS_BACKGROUND en el archivo de manifiesto:

<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">

Luego, tu app debe solicitar los permisos en operaciones separadas:

  1. Verifica si se otorgó BODY_SENSORS. De lo contrario, solicita el permiso.
  2. Verifica si se otorgó BODY_SENSORS_BACKGROUND. De lo contrario, solicita el permiso.
La opción Todo el tiempo es el primer elemento de la lista en la pantalla de configuración
Figura 1: La configuración de los sensores incluye una opción llamada Todo el tiempo, que otorga acceso a los datos del sensor en segundo plano.

Precaución: Si tu app solicita ambos permisos del sensor corporal al mismo tiempo, el sistema ignorará la solicitud y no le otorgará ninguno.

En Android 13 (nivel de API 33) y versiones posteriores, el diálogo de permiso de tiempo de ejecución no incluye la opción Permitir todo el tiempo. En cambio, los usuarios deben habilitar el acceso permanente a los sensores en segundo plano desde la configuración del sistema, como se muestra en la figura 1. Si solicitas el permiso BODY_SENSORS_BACKGROUND después de otorgar BODY_SENSORS, puedes ayudar a los usuarios a navegar a esta página de configuración. Si los usuarios rechazan el acceso permanente, deberían igualmente poder seguir usando tu app.

La app está orientada a una versión anterior

El texto del vínculo es &quot;Ir a la configuración&quot;
Figura 2: El diálogo de permisos incluye un vínculo para dirigir a los usuarios a los permisos del sensor de la app en la configuración del sistema.

Cuando tu app se segmenta a una versión de Android anterior a Android 13, el acceso en segundo plano no se otorga automáticamente cuando solicitas el permiso BODY_SENSORS. En cambio, los usuarios ven un diálogo del sistema que los invita a navegar a la configuración de permisos del sensor de tu app, como se muestra en la Figura 2. Luego, los usuarios deben habilitar el uso del sensor en segundo plano en esa página de configuración.

Los usuarios pueden rechazar el acceso en segundo plano. Tiene el mismo efecto que revocar el permiso BODY_SENSORS mientras la app se ejecuta en segundo plano. Cuando una app usa PassiveMonitoringClient sin permiso de acceso en segundo plano y pasa a este plano, pierde el permiso BODY_SENSORS, y se invoca la devolución de llamada onPermissionLost(). Por estos motivos, es muy importante que sigas las prácticas recomendadas para solicitar permisos de tiempo de ejecución.