Uma notificação é uma mensagem que o Android exibe fora da interface do usuário do app para fornecer ao usuário lembretes, comunicados de outras pessoas ou outras informações oportunas do seu app. Os usuários podem tocar na notificação para abrir o app ou executar uma ação diretamente da notificação.
Esta página fornece uma visão geral do local em que as notificações aparecem e os recursos disponíveis. Para começar a criar notificações, leia Criar uma notificação.
Para mais informações sobre o design de notificações e padrões de interação, consulte o Guia de design de notificações.
Exibições em dispositivos
As notificações aparecem automaticamente para os usuários em diferentes locais e formatos. Uma notificação aparece como um ícone na barra de status, uma entrada mais detalhada na gaveta de notificações e um indicador no ícone do app. As notificações também aparecem em wearables pareados.
Barra de status e gaveta de notificações
Quando você envia uma notificação, primeiramente ela é exibida como um ícone na barra de status.
Figura 1. Os ícones de notificação aparecem no lado esquerdo da barra de status.
Os usuários podem deslizar para baixo na barra de status para abrir a gaveta de notificações, onde é possível ver mais detalhes e executar ações com a notificação.
Figura 2. Notificações na gaveta.
Os usuários podem arrastar para baixo uma notificação na gaveta para revelar a exibição expandida, que mostra mais conteúdo e botões de ação, caso algum seja fornecido. A partir do Android 13, essa visualização expandida inclui um botão que permite aos usuários interromper um app que tenha serviços em primeiro plano em andamento.
Uma notificação permanece visível na gaveta até que seja dispensada pelo app ou pelo usuário.
Notificação de informações básicas
A partir do Android 5.0, as notificações podem aparecer brevemente em uma janela flutuante chamada notificação de informações básicas. Geralmente, esse comportamento se aplica a notificações importantes que o usuário precisa ver imediatamente e só aparece se o dispositivo estiver desbloqueado.
Figura 3. Uma notificação de informações básicas aparece na frente do app em primeiro plano.
A notificação de informações básicas aparece quando o app envia a notificação. Ela desaparece após alguns instantes, mas permanece visível na gaveta de notificações, como de costume.
Alguns exemplos de condições que podem acionar notificações de informações básicas:
A atividade do usuário está no modo de tela cheia, como quando o app usa
fullScreenIntent
.A notificação tem prioridade alta e usa toque ou vibração em dispositivos com o Android 7.1 (API de nível 25) e versões anteriores.
O canal de notificação tem alta importância em dispositivos com o Android 8.0 (API de nível 26) e versões mais recentes.
Tela de bloqueio
A partir do Android 5.0, as notificações podem aparecer na tela de bloqueio.
Você pode definir programaticamente se as notificações postadas pelo seu app aparecem em uma tela de bloqueio segura e, se sim, o nível de detalhes visíveis.
Os usuários podem usar as configurações do sistema para escolher o nível de detalhes visíveis nas notificações da tela de bloqueio ou desativar todas as notificações dessa tela. A partir do Android 8.0, os usuários podem desativar ou ativar as notificações da tela de bloqueio para cada canal de notificação.
Figura 4. Notificações na tela de bloqueio com conteúdo sensível oculto.
Para saber mais, consulte Configurar a visibilidade na tela de bloqueio.
Indicador do ícone do app
Nas telas de início compatíveis em dispositivos com Android 8.0 (API de nível 26) e versões mais recentes, os ícones dos apps mostram que há novas notificações com um indicador colorido, conhecido como ponto de notificação, no ícone de inicialização do app correspondente.
Os usuários podem tocar e manter pressionado o ícone de um app para ver as notificações dele. Eles podem dispensar ou interagir com as notificações nesse menu, da mesma forma que na gaveta de notificações.
Figura 5. Indicadores de notificação e menu exibido após tocar e manter pressionado.
Para saber mais sobre o funcionamento dos indicadores, leia Modificar um indicador de notificação.
Dispositivos Wear OS
Se o usuário tiver um dispositivo Wear OS pareado, todas as suas notificações vão aparecer nele automaticamente, incluindo detalhes expansíveis e botões de ação.
Você pode melhorar a experiência personalizando a aparência das notificações em wearables e fornecendo ações diferentes, como respostas sugeridas e respostas por entrada de texto por voz. Para saber mais, veja como adicionar recursos específicos para wearables à sua notificação.
Figura 6. As notificações aparecem automaticamente em um dispositivo Wear OS pareado.
Anatomia de uma notificação
O design de uma notificação é determinado pelos modelos do sistema, e seu app define o conteúdo de cada parte do modelo. Alguns detalhes da notificação só aparecem na exibição expandida.
Figura 7. Uma notificação com detalhes básicos.
As partes mais comuns de uma notificação são indicadas na Figura 7 da seguinte forma:
- Ícone pequeno: obrigatório; definido usando
setSmallIcon()
. - Nome do app: fornecido pelo sistema.
- Carimbo de data/hora: fornecido pelo sistema, mas você pode substituir com
setWhen()
ou ocultar comsetShowWhen(false)
. - Ícone grande: opcional; geralmente usado apenas para fotos de contatos.
Não use para o ícone do app. Definido usando
setLargeIcon()
. - Título: opcional; definido usando
setContentTitle()
. - Texto: opcional; definido usando
setContentText()
.
É altamente recomendável usar modelos de sistema para garantir compatibilidade de design adequada em todos os dispositivos. Se necessário, você pode criar um layout de notificação personalizado.
Para saber mais sobre como criar uma notificação com esses recursos e muito mais, leia Criar uma notificação.
Ações da notificação
Embora não seja obrigatório, é recomendável que todas as notificações abram uma atividade apropriada no app quando tocadas. Além dessa ação de notificação padrão, você pode adicionar botões de ação que executam uma tarefa relacionada ao app a partir da notificação (geralmente sem abrir uma atividade), conforme mostrado na Figura 8.
Figura 8. Uma notificação com botões de ação.
A partir do Android 7.0 (API de nível 24), é possível adicionar uma ação para responder mensagens ou inserir outros textos diretamente a partir da notificação.
A partir do Android 10 (API de nível 29), a plataforma pode gerar botões de ação automaticamente com ações baseadas em intents sugeridas.
Mais informações sobre como adicionar botões de ação estão disponíveis em Criar uma notificação.
Exigir um dispositivo desbloqueado
Os usuários podem ver ações de notificação na tela de bloqueio do dispositivo. Se uma ação de notificação fizer com que um app inicie uma atividade ou envie uma resposta direta, os usuários precisarão desbloquear o dispositivo antes que ele possa invocar essa ação de notificação.
No Android 12 (nível 31 da API) e versões mais recentes, é possível configurar uma ação de notificação para que o dispositivo seja desbloqueado e o app invoque essa ação, não importa qual fluxo de trabalho a ação inicia. Essa opção adiciona uma camada extra de segurança às notificações em dispositivos bloqueados.
Para exigir que um dispositivo seja desbloqueado antes que o app invoque determinada ação
de notificação, transmita true
para
setAuthenticationRequired()
ao criar sua ação de notificação, como mostrado no seguinte snippet de código:
Kotlin
val moreSecureNotification = Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build()
Java
Notification moreSecureNotification = new Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build();
Notificação expansível
Por padrão, o conteúdo de texto da notificação é truncado para caber em uma única linha. Se você quiser que sua notificação seja mais longa, ative uma área de texto maior, que é expansível com a aplicação de um modelo suplementar, conforme exibido na Figura 9.
Figura 9. Notificação expansível para texto grande.
Também é possível criar uma notificação expansível com uma imagem, com estilo de caixa de entrada, com uma conversa de chat ou com controles de reprodução de mídia. Para mais informações, leia Criar uma notificação expansível.
Grupos e atualizações de notificação
Para não bombardear seus usuários com notificações múltiplas ou redundantes quando houver novas atualizações, atualize uma notificação existente em vez de emitir uma nova ou use a notificação no estilo de caixa de entrada para mostrar atualizações de conversas.
No entanto, caso seja necessário enviar várias notificações, considere agrupá-las (disponível no Android 7.0 e versões mais recentes).
Um grupo de notificações permite recolher várias notificações em uma postagem na gaveta com um resumo. O usuário pode expandir esse grupo progressivamente, assim como cada notificação dentro dele para ver mais detalhes, conforme mostrado na figura 10.
Figura 10. Um grupo de notificações recolhido e expandido.
Para saber como adicionar notificações a um grupo, consulte Criar um grupo de notificações.
Canais de notificação
A partir do Android 8.0 (API de nível 26), todas as notificações precisam ser atribuídas a um canal ou não vão aparecer. Isso permite que os usuários desativem canais de notificação específicos do seu app em vez de desativar todas as notificações. Os usuários podem controlar as opções visuais e sonoras de cada canal nas configurações do sistema Android, conforme mostrado na figura 11. Os usuários também podem tocar e pressionar uma notificação para mudar os comportamentos do canal associado.
Nos dispositivos com Android 7.1 (API de nível 25) e versões anteriores, os usuários só podem gerenciar as notificações de um app por vez. Cada app tem apenas um canal no Android 7.1 e em versões anteriores.
Figura 11. Configurações de notificação para o app Relógio e um dos canais dele.
Um app pode ter canais separados para cada tipo de notificação emitida por ele. Um app também pode criar canais de notificação em resposta a escolhas feitas pelos usuários. Por exemplo, é possível configurar canais de notificação individuais para cada grupo de conversa criado por um usuário em um app de mensagens.
O canal também é onde você especifica o nível de importância das suas notificações no Android 8.0 e versões mais recentes. Assim, todas as notificações postadas no mesmo canal têm o mesmo comportamento. Isso é descrito na seção a seguir.
Para saber mais, consulte Criar e gerenciar canais de notificação.
Importância da notificação
O Android usa a importância de uma notificação para determinar o nível em que ela pode interromper o usuário (visual e sonoramente). Quanto mais importante for uma notificação, mais ela poderá causar interrupções.
No Android
7.1 (API de nível 25) e versões anteriores, a importância de uma notificação é determinada pela
priority
dela.
No Android 8.0 (API de nível 26) e versões mais recentes, a importância de uma notificação é
determinada pela
importance
do canal em que ela é postada. Os usuários podem mudar a importância de um canal de notificações nas configurações do sistema, conforme mostrado na figura 12.
Figura 12. Os usuários podem mudar a importância de cada canal no Android 8.0 e versões mais recentes.
Os possíveis níveis de importância e os comportamentos de notificação associados são os seguintes:
Urgente: emite um som e aparece como uma notificação de alerta.
Alta: emite um som.
Média: não emite som.
Baixa: não emite som e não aparece na barra de status.
Todas as notificações, independentemente da importância, aparecem em locais não interruptivos na IU do sistema, como na gaveta de notificações e sob a forma de um indicador no ícone na tela de início. No entanto, é possível modificar a aparência do ícone de notificação.
Para mais informações, leia sobre como definir a importância.
Modo Não perturbe
A partir do Android 5.0 (API de nível 21), os usuários podem ativar o modo Não perturbe, que silencia sons e vibrações de todas as notificações. As notificações ainda aparecem normalmente na interface do sistema, a menos que o usuário especifique de outra forma.
Há três níveis disponíveis no modo Não perturbe:
- Silêncio total: bloqueia todos os sons e vibrações, incluindo alarmes, músicas, vídeos e jogos.
- Somente alarmes: bloqueia todos os sons e vibrações, exceto os alarmes.
- Somente prioridade: os usuários podem configurar quais categorias de todo o sistema podem interromper, como apenas alarmes, lembretes, eventos, chamadas ou mensagens. Para mensagens e chamadas, os usuários podem filtrar com base no remetente ou no autor da chamada, conforme mostrado na figura 13.
Figura 13. Os usuários podem permitir notificações com base em categorias do sistema (à esquerda) e remetente ou autor da chamada (à direita).
No Android 8.0 (API de nível 26) e versões mais recentes, os usuários também podem permitir notificações com base em categorias específicas do app (também conhecidas como canais), modificando o modo Não perturbe em cada canal. Por exemplo, um app de pagamento pode ter canais para notificações relacionados a saques e depósitos. O usuário pode permitir notificações de saques, notificações de depósitos ou ambas no modo de prioridade.
Nos dispositivos com Android 7.1 (API de nível 25) e versões anteriores, os usuários podem permitir o envio de notificações de acordo com a configuração de cada app, em vez de cada canal.
Para configurar suas notificações com essas configurações do usuário, é preciso definir uma categoria para o sistema.
Notificações para serviços em primeiro plano
Uma notificação é necessária quando seu app estiver executando um serviço
em primeiro plano, ou seja, um Service
executado em
segundo plano, que é de longa duração e perceptível para o usuário, como um player de
mídia. Essa notificação não pode ser dispensada como as outras. Para remover
a notificação, o serviço precisa ser interrompido ou removido do estado de
primeiro plano.
Para mais informações, leia Serviços em primeiro plano. Se você estiver criando um player de mídia, leia também Como tocar mídia em segundo plano.
Comportamentos de notificação
Android 16.0, API de nível 36
Agora as notificações são agrupadas automaticamente em nome do app.
As seguintes notificações são agrupadas automaticamente:
- Notificações sem um resumo
- Notificações sem notificações de crianças
- Notificações únicas ou com um número baixo de notificações infantis
Android 15.0, API de nível 35
Período de espera
O Android 15 apresenta um recurso de redução de notificações que visa melhorar a experiência de notificações que chegam em rápida sucessão. Esse recurso reduz a aparência, o volume do som e a intensidade da vibração de notificações repetitivas por até dois minutos.
As notificações críticas que exigem áudio e resposta tátil para chamar a atenção não estão sujeitas a esse período. O usuário pode desativar o período de espera nas configurações.
Figura 9. As configurações de atenuação de notificações.
Confira abaixo um exemplo de como localizar as configurações de espera de notificação:
Kotlin
val intent = Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS) val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)
Java
Intent intent = new Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS) PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)