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ções, 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 ativação, os OEMs precisam implementar mudanças nos sistemas de permissões de notificação e de 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 nas notificações de ativação

A partir do Android 13, os apps precisam declarar a intent para enviar notificações solicitando a permissão de execução android.permission.POST_NOTIFICATION do sistema antes de 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. Antes do Android 13, essa configuração era armazenada no sistema de notificações. Portanto, os OEMs precisam migrar os dados de notificação atuais 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 no sistema de notificações 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 ativação do 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 de permissão

A tabela abaixo ilustra o comportamento da notificação para várias versões do app em um dispositivo com o Android 13:

Dispositivo com o Android 13 Apps destinados ao Android 13 ou mais recente Apps destinados a versões anteriores ao Android 13
Nova instalação As notificações são bloqueadas até que o app solicite.

Os apps controlam quando pedir permissão.

As notificações são bloqueadas até que o SO solicite.

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

App atual (upgrade) As notificações são permitidas até que o app solicite.

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

As notificações são permitidas até que o SO solicite.

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

Diretrizes para implementação

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

Durante a implementação, use as diretrizes abaixo sobre o comportamento de notificação do usuário em apps destinados a SDKs do Android 13 ou versões anteriores:

  • Os 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 precisarão ser bloqueadas até que sejam solicitadas pelo app, já que ele controla quando e se vai pedir permissão ao usuário.
    • Se o app for direcionado a versões anteriores ao Android 13, as notificações precisarão ser bloqueadas até que o SO solicite. 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 que tenha sido restaurado por meio de backup e restauração precisa ter permissão para enviar notificações até a primeira vez que o usuário iniciar uma atividade desse app.

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

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

    • Para apps com um SDK de destino de versões anteriores ao Android 13, intercepte a primeira inicialização de atividade depois que o app criar 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 de um app no dispositivo que está sendo atualizado ou em um backup que está sendo restaurado no dispositivo, a configuração no nível do app precisa ser migrada para o sistema de permissão com a flag FLAG_PERMISSION_USER_SET. Nenhum outro pedido de permissão de notificação precisa ser mostrado ao usuário, a menos que o app especifique isso.

  • 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: