Permissão de notificação para notificações de aceitação

As notificações no Android 13 usam um modelo opt-in, que é uma mudança em relação às versões anteriores do Android, que usam um modelo opt-out. No Android 13, todos os aplicativos devem pedir permissão aos usuários antes de enviar solicitações de notificação. Esse modelo ajuda a reduzir as interrupções de notificação, minimiza a sobrecarga de informações e ajuda os usuários a controlar quais notificações aparecem com base no que é importante para eles. Para oferecer suporte ao modelo opt-in, os OEMs devem implementar alterações nos sistemas de notificação e permissão de tempo de execução.

Esta página descreve o que os OEMs devem implementar para dar suporte a essa mudança e como validar a implementação.

Implementar alterações para notificações opt-in

A partir do Android 13, os aplicativos devem declarar a intenção de enviar notificações solicitando a permissão de tempo de execução android.permission.POST_NOTIFICATION do sistema antes de poderem enviar notificações.

No Android 13 e superior, a configuração que determina se um aplicativo pode enviar notificações ao usuário é armazenada no sistema de permissão. Antes do Android 13, essa configuração era armazenada no sistema de notificação. Portanto, os OEMs devem migrar os dados de notificação existentes sobre se um aplicativo tem permissão para enviar notificações, do sistema de notificação para o sistema de permissão de tempo de execução. Os OEMs também devem manter as APIs existentes no sistema de notificação que exibem esses dados para os desenvolvedores de aplicativos.

As alterações nos sistemas de notificação e permissão são baseadas no modelo opcional de comportamento de notificação do usuário e são descritas na seção Diretrizes para implementação .

Comportamento das notificações do usuário em um modelo opt-in

A tabela a seguir ilustra o comportamento de notificação para várias versões de aplicativos em um dispositivo com Android 13:

Dispositivo no Android 13 Aplicativos direcionados ao Android 13 ou superior Aplicativos segmentados para versões anteriores ao Android 13
Nova instalação As notificações são bloqueadas até que sejam solicitadas pelo aplicativo.

Os aplicativos controlam quando pedir permissão.

As notificações são bloqueadas até serem solicitadas pelo sistema operacional.

A permissão é solicitada na primeira execução do aplicativo.

Aplicativo existente (atualização) As notificações são permitidas até que sejam solicitadas pelo aplicativo.

A permissão temporária é concedida até que o aplicativo pergunte na primeira corrida de qualificação.

As notificações são permitidas até que sejam solicitadas pelo sistema operacional.

A permissão temporária é concedida até a primeira execução do aplicativo.

Diretrizes para implementação

Para implementação de referência, consulte serviço de notificação , serviço de permissão e serviço de política . Para implementar exceções para manipuladores de permissão padrão, consulte Permissões de tempo de execução .

Durante a implementação, use as seguintes diretrizes sobre o comportamento de notificação do usuário para aplicativos destinados ao Android 13 ou SDKs anteriores:

  • Aplicativos recém-instalados em um dispositivo Android 13 não devem enviar uma notificação sem que o usuário aprove um prompt de permissão.
    • Se o aplicativo for destinado a versões Android 13 e superiores, as notificações devem ser bloqueadas até que sejam solicitadas pelo aplicativo, pois o aplicativo controla quando e se deve solicitar permissão do usuário.
    • Se o aplicativo for destinado a versões anteriores ao Android 13, as notificações deverão ser bloqueadas até que sejam solicitadas pelo sistema operacional. O sistema operacional deve mostrar o prompt de permissão na primeira execução do aplicativo.
  • Qualquer aplicativo que existia no dispositivo antes de uma atualização para o Android 13 ou qualquer aplicativo restaurado por meio de backup e restauração deve ter permissão para enviar notificações até a primeira vez que o usuário iniciar uma atividade desse aplicativo.

    • Para aplicativos direcionados ao SDK das versões Android 13 e superior, se o usuário não tiver personalizado anteriormente as configurações de notificação para este aplicativo no aplicativo ou no nível NotificationChannel , revogue a concessão de permissão temporária. Os aplicativos devem então pedir permissão ao usuário antes de poderem continuar a enviar notificações.

      Se um aplicativo atualizado destinado ao Android 13 não tiver atualmente a permissão de notificação por meio da concessão de atualização temporária e o usuário o tiver iniciado pelo menos uma vez, o aplicativo deverá mostrar um prompt de permissão de notificação antes de poder executar outros serviços em primeiro plano.

    • Para aplicativos que têm um SDK de destino de versões anteriores ao Android 13, intercepte a primeira inicialização de atividade depois que o aplicativo criar pelo menos um NotificationChannel para mostrar um prompt de permissão perguntando se o usuário deseja receber notificações do aplicativo.

      Se um usuário personalizou anteriormente as configurações de notificação no nível do aplicativo ou NotificationChannel para um aplicativo no dispositivo de atualização ou em um backup sendo restaurado para o dispositivo, a configuração do nível do aplicativo deve ser migrada para o sistema de permissão com o sinalizador FLAG_PERMISSION_USER_SET . Nenhum prompt de permissão de notificação adicional deve ser mostrado ao usuário, a menos que o aplicativo solicite especificamente.

  • O backup e a restauração devem ser compatíveis com versões anteriores e posteriores entre um dispositivo Android 13 e um dispositivo de uma versão anterior do sistema operacional. Os dados de backup gerados de um dispositivo Android 13 devem ser restaurados em uma versão anterior do sistema operacional, e os dados de backup de uma versão anterior do sistema operacional devem ser restaurados em um dispositivo Android 13.

  • As notificações de mídia associadas à reprodução de mídia em andamento devem ser isentas da permissão de notificação.

Validar alterações nos sistemas de notificação e permissão

Para validar a implementação, execute os seguintes testes: