Android 13 y Wear OS 4 presentan una forma para que las apps accedan a los sensores corporales, como como la frecuencia cardíaca, en segundo plano. Este nuevo modelo de acceso es similar al que 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:
- Verifica si se otorgó
BODY_SENSORS
. De lo contrario, solicita el permiso. - Verifica si se otorgó
BODY_SENSORS_BACKGROUND
. De lo contrario, solicita el permiso.
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
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.