Limites de intent para tela cheia

Para evitar spam de anúncios e phishing de credenciais, no Android 14 e versões mais recentes, a permissão USE_FULL_SCREEN_INTENT padrão para enviar notificações em tela cheia só pode ser concedida a apps que ofereçam funcionalidades de chamada e alarme.

Para todos os apps instalados no Android 14, a permissão USE_FULL_SCREEN_INTENT é ativada por padrão. Após a instalação, a Google Play Store revoga a permissão de intent para tela cheia (FSI) de apps que não têm funcionalidades de chamada ou alarme.

Para apps instalados em smartphones com versões do Android 13 ou anteriores, a permissão USE_FULL_SCREEN_INTENT continua ativada por padrão.

Permissão do usuário

No Android 14, os apps podem usar NotificationManager#canUseFullScreenIntent() para verificar se podem enviar notificações em tela cheia. Para receber a permissão do usuário para enviar notificações em tela cheia, os apps usam ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT para iniciar a configuração Gerenciar intents de tela cheia, conforme mostrado na Figura 1:

fsi-ui

Figura 1. Interface para permitir que os apps enviem intents de tela cheia.

A configuração Gerenciar intents de tela cheia está no menu Configurações em Acesso especial para apps. Com essa interface, os usuários podem revogar essa permissão, se necessário.

Requisitos do OEM

No Android 14, as permissões de FSI para apps são ativadas por padrão. Os OEMs precisam especificar quais apps atendem aos requisitos de permissões de FSI. Os OEMs precisam garantir que as app stores de terceiros definam os estados de concessão iniciais das permissões de FSI para os apps usando PackageInstaller.SessionParams, especificamente com os parâmetros PERMISSION_STATE_DEFAULT, PERMISSION_STATE_DENIED e PERMISSION_STATE_GRANTED.

Validação

Use o teste do CTS Verifier em NotificationFullScreenIntentVerifierActivity.java e o teste do CTS em NotificationManagerTest.java para validar os limites de FSI.

Testes manuais

Siga estas etapas para testar manualmente os limites de FSI no seu app:

  1. Declare USE_FULL_SCREEN_INTENT no arquivo AndroidManifest.xml do app.
  2. Use ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT para gerenciar as configurações e ativar ou desativar o FSI.
  3. No smartphone de teste, ative manualmente a permissão do usuário para receber notificações em tela cheia, conforme mostrado na Figura 1.
  4. Enviar uma notificação de FSI.
  5. Valide a aparência da notificação de tela cheia para as seguintes combinações de permissão de FSI e modos de exibição:
Permissão de FSI Tela desbloqueada Tela bloqueada Fora da tela Tela sempre ativada (AOD)
Concedido pelo usuário Notificação de alerta persistente (HUN) com botões de pílula Iniciar o FSI Iniciar o FSI Iniciar o FSI
Negado pelo usuário HUN com botões de pílula para 60s O HUN com botões de pílula aparece primeiro na lista por 60 segundos O AOD é ativado, mostrando HUN com botões de pílula por 60 segundos HUN com botões de pílula para 60s