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 recusa. Em No Android 13, todos os apps precisam pedir a permissão dos usuários antes de enviar solicitações de notificação. Esse modelo ajuda a reduzir a reduz a sobrecarga de informações e ajuda os usuários a controlar o que as notificações aparecem com base no que é importante para eles. Para oferecer suporte ao modelo opcional, os OEMs precisam implementar mudanças na notificação e no tempo de execução sistemas de permissões.
Esta página descreve o que os OEMs precisam implementar para oferecer suporte a essa mudança e como para validar a implementação.
Implementar mudanças nas notificações de aceitação
No Android 13 e versões mais recentes, os apps precisam declarar as
de enviar notificações solicitando o
android.permission.POST_NOTIFICATION
permissão de execução do sistema antes que possam 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 é armazenado no sistema de permissões. Antes do 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 pode enviar notificações, desde a para o sistema de permissão de execução. Os OEMs também precisam manter as APIs atuais no sistema de notificação que apresenta esses dados aos desenvolvedores de apps.
As mudanças nos sistemas de notificações e permissões são baseadas no do comportamento de notificação do usuário e estão descritos na seção Diretrizes para 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 de vários aplicativos 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 ficam bloqueadas até que o app solicite.
Os apps controlam quando pedir permissões. |
As notificações ficam 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 sejam 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é que sejam solicitadas pelo SO.
A permissão temporária é concedida até a primeira execução do app. |
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íticas. Para implementar exceções para gerenciadores de permissões padrão, consulte Permissões do ambiente de execução.
Durante a implementação, siga estas diretrizes sobre notificações ao usuário comportamento para apps destinados a SDKs do Android 13 ou versões anteriores:
- Os apps recém-instalados em um dispositivo Android 13 precisam
não enviar uma notificação sem que o usuário aprove uma solicitação de permissão.
- Se o app for direcionado às versões do Android 13 e superior, as notificações precisam ser bloqueadas até serem solicitadas pelo app, controla quando e se é necessário pedir a permissão do usuário.
- Se o aplicativo for direcionado a versões anteriores a No Android 13, as notificações precisam ser bloqueadas até solicitado pelo SO. O SO precisa mostrar o prompt de permissão na primeira execução do o app.
Qualquer app que existia no dispositivo antes de um upgrade para Android 13 ou qualquer app que tenha sido restaurado pelo backup e restaurar, precisa ter permissão para enviar notificações até a primeira vez que o usuário inicia uma atividade a partir desse aplicativo.
Para apps destinados ao SDK das versões do Android 13 e superiores, se o usuário ainda não tiver personalizado as configurações de notificação para este app no nível do app ou do
NotificationChannel
, revogue o uma permissão concedida. Os apps precisam pedir a permissão do usuário antes de serem autorizado a continuar enviando notificações.Se um app atualizado destinado ao Android 13 não têm permissão de notificação por meio do upgrade temporário e o usuário o tiver iniciado pelo menos uma vez, o app precisará exibir uma solicitação de permissão de notificação antes de executar outras ações em primeiro plano serviços.
Para apps com um SDK de destino de versões anteriores a Android 13 interceptar na primeira inicialização de atividade após o app criar pelo menos uma
NotificationChannel
. para mostrar uma solicitação de permissão perguntando se o usuário quer receber notificações do app.Se o usuário já tiver personalizado as configurações de notificação nível do app ou do
NotificationChannel
de um app no dispositivo com upgrade ou em um backup sendo restaurado no dispositivo, a configuração no nível do app precisará ser migrada para o sistema de permissões com a flagFLAG_PERMISSION_USER_SET
. Não há mais uma solicitação de permissão de notificação precisa ser mostrada ao usuário, a menos que o app pede especificamente que seja.
O backup e a restauração precisam ser compatíveis com versões anteriores e posteriores Dispositivo com Android 13 e um SO anterior para a versão anterior. Dados de backup gerados em um dispositivo Android 13 dispositivo precisa ser restaurado para uma versão anterior do SO e fazer backup dos dados de uma A versão do SO precisa ser restaurada 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ções.
Validar alterações nos sistemas de notificações e permissões
Para validar a implementação, execute os seguintes testes:
Testes de unidade, conforme especificado em
PreferencesHelperTest
,NotificationManagerServiceTest
Qualquer teste manual que testa upgrades, backup e restauração.
Qualquer teste do sistema de notificações e permissões do CTS que envia notificações. Alguns desses testes estão localizados em cts/tests/tests/permission/, NotificationManagerTest.java, e cts/tests/tests/notificationlegacy/.