O Android 13 introduz uma nova
permissão de execução para enviar
notificações não isentas de apps:
POST_NOTIFICATIONS
.
Essa mudança ajuda os usuários a se concentrarem nas notificações que eles consideram mais
importantes.
Recomendamos que você destine o app ao Android 13 o quanto antes para fazer uso do maior controle e da maior flexibilidade proporcionados por esse recurso. Se o app continuar a ser destinado ao 12L (nível 32 da API) ou versões anteriores, você não vai poder solicitar permissões no contexto de uso das funcionalidades do app.
Usar a nova permissão
Para solicitar a nova permissão de notificação no app, é necessário o atualizar para que ele seja destinado ao Android 13 e seguir um processo semelhante ao de solicitação de outras permissões de execução, conforme apresentado nas seções abaixo.
O snippet de código abaixo mostra a permissão que precisa ser declarada no arquivo de manifesto do app:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <application ...> ... </application> </manifest>
O uso dos recursos do app depende da escolha do usuário na caixa de diálogo de permissões
Nessa caixa de diálogo, o usuário tem estas opções:
- Selecionar permitir
- Selecionar não permitir
- Deslizar para sair da caixa de diálogo sem pressionar nenhum dos botões
As seções abaixo descrevem como o app se comporta de acordo com a ação realizada pelo usuário.
O usuário seleciona "Permitir"
Se o usuário selecionar a opção permitir, o app vai poder fazer o seguinte:
- Enviar notificações. Todos os canais de notificação são permitidos.
- Enviar notificações relacionadas a serviços em primeiro plano . Essas notificações são exibidas na gaveta de notificações.
O usuário seleciona "Não permitir"
Se o usuário selecionar a opção não permitir, o app não vai poder enviar notificações. Todos os canais de notificação ficam bloqueados, exceto alguns papéis específicos. Esse comportamento é semelhante ao que ocorre quando o usuário desativa manualmente todas as notificações do app nas configurações do sistema.
O usuário desliza para sair da caixa de diálogo
Se o usuário deslizar para sair da caixa de diálogo, ou seja, não selecionar permitir ou não permitir, o comportamento abaixo vai ser implementado:
- Se o app for qualificado para receber uma permissão de notificação temporária, o sistema vai preservar a permissão temporária.
- Caso o app não tenha uma permissão temporária, ele não vai poder enviar notificações.
Efeitos em apps recém-instalados
Se um usuário instalar o app em um dispositivo com o Android 13, as notificações do app vão ser desativadas por padrão. O app precisa aguardar para enviar notificações somente após solicitar a nova permissão e receber a autorização do usuário.
O momento em que a caixa de diálogo de permissões é exibida depende da versão do SDK de destino do app:
- Se o app for destinado ao Android 13 ou a versões mais recentes, ele vai ter controle total sobre o momento em que a caixa de diálogo de permissão é exibida. Use essa oportunidade para explicar por que o app precisa dessa permissão e pedir que o usuário a conceda.
- Caso o app seja destinado ao 12L (nível 32 da API) ou versões anteriores, o sistema vai exibir a caixa de diálogo de permissão quando o app criar o primeiro canal de notificação. Isso geralmente ocorre na inicialização do app.
Efeitos nas atualizações de apps existentes
Para minimizar as interrupções relacionadas à nova permissão de notificação, o sistema concede automaticamente essa nova permissão temporariamente a todos os apps qualificados já instalados no dispositivo do usuário antes da atualização do sistema para o Android 13. A duração dessa permissão temporária depende da versão do SDK de destino do app:
Caso o app seja destinado ao Android 13 ou versões mais recentes, a permissão temporária vai ser válida até a primeira vez que o app iniciar uma atividade.
O app tem controle total sobre o momento em que a caixa de diálogo de permissões vai ser exibida. Use essa oportunidade para explicar por que o app precisa dessa permissão e pedir que o usuário a conceda.
Caso o app seja destinado ao 12L ou versões anteriores, a permissão temporária vai ser válida até que o usuário selecione explicitamente uma opção na caixa de diálogo de permissões de notificação. Isso significa que, se o usuário dispensar a solicitação de permissão sem selecionar uma opção, o sistema vai manter a permissão temporária para o app.
Qualificação para concessão de permissões temporárias
Para que o app seja qualificado para receber uma permissão temporária, é necessário que ele tenha um canal de notificação existente e que o usuário não desative explicitamente as notificações do app em um dispositivo com o 12L ou versões anteriores.
Caso o usuário tenha desativado as notificações do app em um dispositivo com o 12L ou versões anteriores, essa configuração vai permanecer válida quando o dispositivo for atualizado para o Android 13 ou versões mais recentes.
Isenções
As notificações relacionadas a sessões de mídia estão isentas dessa mudança de comportamento.
Práticas recomendadas
Esta seção descreve várias maneiras de usar a nova permissão de notificação de forma mais eficaz no app.
Atualizar a versão do SDK de destino do app
Para oferecer mais flexibilidade ao app com relação ao momento em que a caixa de diálogo de permissões vai ser exibida, atualize o app para que ele seja destinado ao Android 13.
Esperar para exibir a solicitação de permissão de notificação
Antes de solicitar permissões aos usuários, permita que eles conheçam melhor o app.
Novos usuários podem querer experimentar o app e entender por conta própria os benefícios de cada solicitação de notificação. É possível acionar uma solicitação de permissões com base em uma ação do usuário. A lista abaixo mostra vários exemplos de bons momentos para exibir a solicitação de permissão de notificação:
- O usuário toca no ícone de "sino de notificações" de alerta.
- O usuário decide seguir uma nova conta em uma mídia social.
- O usuário faz um pedido de entrega de comida.
A Figura 1 apresenta um fluxo de trabalho recomendado para solicitar a permissão de notificação. Como alternativa, é possível definir uma solicitação que vai ser exibida na terceira ou quarta vez em que o app for iniciado.
Solicitar a permissão no contexto
Solicite permissões de notificação no contexto correto de modo que fique explicitamente claro para qual função as notificações vão ser usadas e por que o usuário precisaria as ativar. Por exemplo, um app de e-mails pode incluir opções para enviar notificações a cada novo e-mail ou apenas de e-mails em que o usuário é o único destinatário.
Use essa oportunidade para apresentar suas intenções de forma transparente. Assim, os usuários vão estar mais propensos a conceder a permissão de notificação ao app.
Conferir se o app pode enviar notificações
Antes de enviar uma notificação, confirme se o usuário ativou
as notificações para o app. Para fazer isso, chame
areNotificationsEnabled()
.
Usar a permissão de forma responsável
Depois de receber a permissão para enviar notificações, use-a de forma responsável. Os usuários vão ver o número de notificações diárias enviadas pelo app e vão poder revogar a permissão a qualquer momento.