Para prevenir el spam de anuncios y el phishing de credenciales, a partir de Android 14, el permiso predeterminado de USE_FULL_SCREEN_INTENT
para enviar las notificaciones de pantalla completa podrá otorgarse solo 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. Tras la instalación, Google Play Store revoca el permiso de intent de pantalla completa (FSI) para las apps que no tienen funciones de llamadas o alarmas.
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 el parámetro de configuración Administrar intents de pantalla completa, como se muestra en la Figura 1:
Figura 1: Es la IU para habilitar que las apps envíen intents de pantalla completa.
El parámetro de configuració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 OEM deben especificar qué apps cumplen con los requisitos para obtener permisos de FSI. Los OEM deben asegurarse de que las tiendas de aplicaciones de terceros establezcan los estados iniciales de concesión 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 tu teléfono de prueba, activa manualmente el permiso del usuario para las notificaciones de pantalla completa, como se muestra en la Figura 1.
- Envía una notificación de FSI.
- Valida la apariencia de la notificación de pantalla completa para las siguientes combinaciones de permiso de FSI y modos de visualización:
Permiso de FSI | Pantalla desbloqueada | Pantalla bloqueada | Fuera de la pantalla | Pantalla siempre activa (PSA) |
Otorgado por el usuario | Notificación emergente (HUN) persistente con botones de píldoras | Cómo iniciar la FSI | Cómo iniciar la FSI | Cómo iniciar la FSI |
El usuario rechazó la solicitud | HUN con botones de píldoras para 60 s | La HUN con botones de píldora aparece primero en la lista durante 60 s. | La pantalla AOD se activa y muestra la HUN con botones de píldora durante 60 s. | HUN con botones de píldoras para 60 s |