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

As notificações no Android 13 usam um modelo de permissão, que é uma mudança em relação às versões anteriores do Android, que usam um modelo de desativação. No Android 13, todos os apps precisam 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 de permissão, os OEMs precisam implementar mudanças nos sistemas de permissões de notificação e execução.

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

Implementar mudanças para notificações de permissão

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

No Android 13 e versões mais recentes, a configuração que determina se um app pode enviar notificações ao usuário é armazenada no sistema de permissões. Em versões anteriores ao Android 13, essa configuração era armazenada no sistema de notificação. Portanto, os OEMs precisam migrar os dados de notificação existentes sobre se um app tem permissão para enviar notificações do sistema de notificação para o sistema de permissão de execução. Os OEMs também precisam manter as APIs atuais no sistema de notificação que mostram esses dados aos desenvolvedores de apps.

As mudanças nos sistemas de notificação e permissão são baseadas no modelo de permissão do comportamento de notificação do usuário e são descritas na seção Diretrizes de implementação.

Comportamento das notificações do usuário em um modelo de permissão

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

Dispositivo no Android 13 Apps destinados ao Android 13 ou a versões mais recentes Apps destinados a versões anteriores ao Android 13
Nova instalação As notificações são bloqueadas até serem solicitadas pelo app.

Os apps controlam quando pedir permissão.

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

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

App atual (upgrade) As notificações são permitidas até serem solicitadas pelo app.

A permissão temporária é concedida até que o app peça na primeira execução qualificada.

As notificações são permitidas até serem solicitadas pelo SO.

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

Diretrizes de implementação

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

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

  • Apps recém-instalados em um dispositivo Android 13 não podem enviar uma notificação sem que o usuário aprove uma solicitação de permissão.
    • Se o app for destinado ao Android 13 e versões mais recentes, as notificações serão bloqueadas até serem solicitadas pelo app, já que ele controla quando e se deve pedir permissão do usuário.
    • Se o app for destinado a versões anteriores ao Android 13, as notificações serão bloqueadas até serem solicitadas pelo SO. O SO precisa mostrar a solicitação de permissão na primeira execução do app.
  • Qualquer app que existia no dispositivo antes de um upgrade para o Android 13 ou qualquer app restaurado por backup e restauração poderá enviar notificações até a primeira vez que o usuário iniciar uma atividade desse app.

    • Para apps destinados ao SDK do Android 13 e versões mais recentes, se o usuário não tiver personalizado as configurações de notificação desse app no nível do app ou do NotificationChannel, revogue a concessão de permissão temporária. Os apps precisam pedir permissão ao usuário antes de poderem continuar enviando notificações.

      Se um app atualizado destinado ao Android 13 não tiver a permissão de notificação pela concessão de upgrade temporário e o usuário o tiver iniciado pelo menos uma vez, o app precisará mostrar uma solicitação de permissão de notificação antes de poder executar outros serviços em primeiro plano.

    • Para apps que têm um SDK de destino de versões anteriores ao Android 13, intercepte o primeiro lançamento de atividade depois que o app tiver criado pelo menos um NotificationChannel para mostrar uma solicitação de permissão perguntando se o usuário quer receber notificações do app.

      Se um usuário tiver personalizado as configurações de notificação no nível do app ou do NotificationChannel para um app no dispositivo de upgrade ou em um backup que está sendo restaurado no dispositivo, a configuração do nível do app precisará ser migrada para o sistema de permissão com a flag FLAG_PERMISSION_USER_SET. Nenhuma outra solicitação de permissão de notificação precisa ser mostrada ao usuário, a menos que o app peça especificamente.

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

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

Validar mudanças nos sistemas de notificação e permissão

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