Para evitar el spam de anuncios y el phishing de credenciales, a partir de Android 14, el permiso predeterminado de USE_FULL_SCREEN_INTENT
para enviar notificaciones de pantalla completa solo se puede otorgar a las apps que brinden funciones de llamadas y alarmas.
Para todas las apps que se instalan en Android 14, el permiso USE_FULL_SCREEN_INTENT
está habilitado de forma predeterminada. Durante la instalación, Google Play Store revoca el permiso de intent de pantalla completa (FSI) para las apps que no tienen funciones de llamada o alarma.
En el caso de las apps instaladas en teléfonos con versiones de Android 13 o anteriores, el permiso USE_FULL_SCREEN_INTENT
permanece habilitado de forma predeterminada.
Permiso del usuario
Con Android 14, las apps pueden usar NotificationManager#canUseFullScreenIntent()
para verificar si pueden enviar notificaciones de pantalla completa. Para obtener el permiso del usuario para enviar notificaciones de pantalla completa, las apps usan ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
para iniciar la configuración Administrar intents de pantalla completa, como se muestra en la Figura 1:
Figura 1: IU para permitir que las apps envíen intents de pantalla completa.
La opción Administrar intents de pantalla completa se encuentra en el menú Configuración, en Acceso especial de apps. Con esta IU, los usuarios pueden revocar este permiso si es necesario.
Requisitos del OEM
En Android 14, los permisos de FSI para las apps están habilitados de forma predeterminada. Los OEMs deben especificar qué apps califican para los permisos de FSI. Los OEMs deben asegurarse de que las tiendas de aplicaciones de terceros establezcan los estados de otorgamiento iniciales de los permisos de FSI para sus apps con PackageInstaller.SessionParams
, específicamente con los parámetros PERMISSION_STATE_DEFAULT
, PERMISSION_STATE_DENIED
y PERMISSION_STATE_GRANTED
.
Validación
Usa la prueba del verificador de CTS en NotificationFullScreenIntentVerifierActivity.java
y la prueba de CTS en NotificationManagerTest.java
para validar los límites de FSI.
Pruebas manuales
Sigue estos pasos para probar manualmente los límites de FSI en tu app:
- Declara
USE_FULL_SCREEN_INTENT
en el archivoAndroidManifest.xml
de tu app. - Usa
ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
para administrar la configuración y activar o desactivar la FSI. - En el teléfono de prueba, activa o desactiva de forma manual el permiso del usuario para las notificaciones de pantalla completa, como se muestra en la Figura 1.
- Enviar una notificación de FSI
- Valida la apariencia de la notificación de pantalla completa para las siguientes combinaciones de permisos de FSI y modos de visualización:
Permiso de FSI | Pantalla desbloqueada | Pantalla bloqueada | Fuera de la pantalla | Pantalla siempre activa (AOD) |
Otorgado por el usuario | Notificación emergente persistente (HUN) con botones de píldora | Iniciar FSI | Cómo iniciar FSI | Cómo iniciar FSI |
Rechazado por el usuario | HUN con botones de píldora durante 60 segundos | HUN con botones de píldora aparece primero en la lista durante 60 segundos. | Se activa la AOD y se muestra la HUN con botones de píldora durante 60 segundos. | HUN con botones de pastillas para los años 60 |