Uma notificação é uma mensagem que o Android mostra fora da interface do app para fornecer ao usuário lembretes, comunicações de outras pessoas ou outras informações oportunas do app. Os usuários podem tocar na notificação para abrir o app ou realizar uma ação diretamente nela.
Esta página fornece uma visão geral do local em que as notificações aparecem e os recursos disponíveis.
Guias de implementação
Os guias a seguir mostram como implementar vários recursos de notificação no seu app:
- Criar uma notificação: saiba como criar e emitir uma notificação básica.
- Permissão de notificações:
saiba como lidar com a permissão de execução
POST_NOTIFICATIONS. - Canais de notificação: permitem que os usuários controlem os comportamentos de notificação.
- Notificações expansíveis:
mostram mais conteúdo usando estilos como
BigTextStyleouMessagingStyle. - Balões: use sobreposições flutuantes e expansíveis para conversas.
- Notificações centradas no progresso: acompanhe jornadas iniciadas pelo usuário, como viagens compartilhadas e entregas.
- Notificações de estilo de ligação: distinguem chamadas recebidas e em andamento de outros tipos de notificação.
- Notificações de atualizações em tempo real: acompanhe o progresso das atividades em andamento.
- Guias de notificação específicos para visualizações: guias para implementar notificações em apps baseados em visualizações.
Para saber mais sobre os padrões de design e interação de notificações, consulte o Guia de design para 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 selo no ícone do app.
Comportamento em dispositivos diferentes
As notificações também aparecem em wearables pareados por padrão. Em cenários em que o
conteúdo da notificação é relevante apenas para o dispositivo de origem, use
setLocalOnly(). Um exemplo é uma notificação confirmando que o download de uma mídia
foi concluído. Para mais orientações específicas sobre notificações do Wear OS, consulte
Notificações do Wear OS.
Barra de status e gaveta de notificações
Quando você emite uma notificação, ela aparece primeiro como um ícone na barra de status.
Os usuários podem deslizar para baixo na barra de status para abrir a gaveta de notificações, onde podem ver mais detalhes e realizar ações com a notificação.
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 que os usuários interrompam 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 de notificação de alerta. Esse comportamento normalmente é usado para notificações importantes que o usuário precisa saber imediatamente e só aparece se o dispositivo estiver desbloqueado.
A notificação de alerta aparece quando o app emite a notificação. Ela desaparece após um momento, mas permanece visível na gaveta de notificações, como de costume.
As condições que podem acionar notificações de alerta incluem:
A atividade do usuário está no modo de tela cheia, como quando o app usa
fullScreenIntent.A notificação tem alta prioridade e usa toques ou vibrações em dispositivos com o Android 7.1 (nível 25 da API) e versões anteriores.
O canal de notificação tem muita importância em dispositivos com o Android 8.0 (nível 26 da API) e versões mais recentes.
Tela de bloqueio
A partir do Android 5.0, as notificações podem aparecer na tela de bloqueio.
É possível definir de forma programática se as notificações postadas pelo app vão aparecer 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ível nas notificações da tela de bloqueio ou para desativar todas as notificações da tela de bloqueio. A partir do Android 8.0, os usuários podem desativar ou ativar as notificações na tela de bloqueio para cada canal de notificação.
Para saber mais, consulte Definir a visibilidade da tela de bloqueio.
Indicador do ícone do app
Em telas de início compatíveis em dispositivos com o Android 8.0 (nível 26 da API) e versões mais recentes, os ícones de apps indicam novas notificações com um selo colorido, conhecido como ponto de notificação, no ícone correspondente na tela de início.
Os usuários podem tocar e manter pressionado o ícone de um app para ver as notificações dele. Eles podem dispensar ou realizar ações nas notificações desse menu, de forma semelhante à gaveta de notificações.
Para saber mais sobre como os selos funcionam, leia Modificar um selo de notificação.
Dispositivos Wear OS
Se o usuário tiver um dispositivo Wear OS pareado, todas as 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, incluindo respostas sugeridas e respostas por entrada de voz. Para saber mais, veja como adicionar recursos específicos para wearables à sua notificação.
Anatomia de uma notificação
O design de uma notificação é determinado por modelos do sistema, e o app define o conteúdo de cada parte do modelo. Alguns detalhes da notificação aparecem apenas na visualização expandida.
As partes mais comuns de uma notificação são indicadas na Figura 7, da seguinte maneira:
- Ícone pequeno: obrigatório; definido usando
setSmallIcon(). - Nome do app: fornecido pelo sistema.
- Carimbo de data/hora: fornecido pelo sistema, mas pode ser substituído usando
setWhen()ou ocultado usandosetShowWhen(false). - Ícone grande: opcional; geralmente usado apenas para fotos de contato.
Não use-o no ícone do app. Defina usando
setLargeIcon(). - Título: opcional; definido usando
setContentTitle(). - Texto: opcional; definido usando
setContentText().
Recomendamos o uso de modelos do sistema para garantir a compatibilidade do design em todos os dispositivos. Se necessário, é possível criar um layout de notificação personalizado.
Para mais informações sobre como criar uma notificação com esses recursos e outros, leia Criar uma notificação.
Ações da notificação
Embora não seja obrigatório, é uma prática recomendada que cada notificação abra uma atividade adequada do app quando tocada. Além dessa ação de notificação padrão, é possível adicionar botões de ação que concluem uma tarefa relacionada ao app na notificação, geralmente sem abrir uma atividade, como mostrado na Figura 8.
No Android 7.0 (nível 24 da API) e versões mais recentes, é possível adicionar uma ação para responder a mensagens ou inserir outro texto diretamente na 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.
A adição de botões de ação é explicada 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 o app possa invocar essa açã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 precise ser desbloqueado para que o app invoque essa ação, não importa qual fluxo de trabalho ela inicie. 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 uma determinada ação de
notificação, transmita true para setAuthenticationRequired() ao criar a
ação de notificação, conforme mostrado no snippet de código abaixo:
val intent = Intent( context, null /** Replace with a valid target activity */ ) val moreSecureNotification = NotificationCompat.Action.Builder( 0, "Reply", PendingIntentCompat.getActivity(context, 0, intent, PendingIntent.FLAG_NO_CREATE, false) ) // 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 a notificação seja mais longa, ative uma área de texto maior que seja expansível aplicando um modelo adicional, como mostrado na Figura 9.
Também é possível criar uma notificação expansível com uma imagem, no estilo de caixa de entrada, com uma conversa de chat ou com controles de mídia. Para mais informações, leia Criar uma notificação expansível.
Grupos e atualizações de notificação
Para evitar que os usuários recebam notificações redundantes ou em excesso quando você tiver outras atualizações, atualize uma notificação atual 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, se for necessário enviar várias notificações, considere agrupá-las em um grupo, disponível no Android 7.0 e versões mais recentes.
Um grupo de notificações permite que você recolha várias notificações em uma única postagem na gaveta de notificações com um resumo. O usuário pode expandir esse grupo progressivamente, assim como cada notificação dentro dele para ver mais detalhes, como mostrado na Figura 10.
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 (nível 26 da API), todas as notificações precisam ser atribuídas a um canal para que sejam exibidas. 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 auditivas de cada canal nas configurações do sistema Android, como mostrado na Figura 11. Os usuários também podem tocar e manter pressionada uma notificação para mudar os comportamentos do canal associado.
Nos dispositivos com Android 7.1 (nível 25 da API) 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 versões anteriores.
Um app pode ter canais separados para cada tipo de notificação que ele emite. Um app também pode criar canais de notificação em resposta às escolhas feitas pelos usuários. Por exemplo, é possível configurar canais de notificação separados 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 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 quanto ela interrompe o usuário visual e audivelmente. Quanto maior a importância de uma notificação, mais interruptiva ela é.
No Android
7.1 (nível 25 da API) e versões anteriores, a importância de uma notificação é determinada pela
priority dela.
No Android 8.0 (nível 26 da API) 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ção nas configurações do sistema, conforme mostrado na Figura 12.
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édio: 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 da IU do sistema que não causam interrupções, como na gaveta de notificações e como um selo no ícone na tela de início. No entanto, é possível modificar a aparência do selo de notificação.
Para mais informações, leia sobre como definir a importância.
Modo Não perturbe
No Android 5.0 (nível 21 da API) e versões mais recentes, os usuários podem ativar o modo Não Perturbe, que silencia o som e a vibração de todas as notificações. As notificações ainda aparecem na IU do sistema normalmente, a menos que o usuário especifique o contrário.
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 interrompê-los, 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, como mostrado na figura 13.
No Android 8.0 (nível 26 da API) e versões mais recentes, os usuários também podem permitir notificações de categorias específicas do app, também conhecidas como canais, substituindo o modo Não perturbe em cada canal. Por exemplo, um app de pagamento pode ter canais para notificações relacionadas a saques e depósitos. O usuário pode permitir notificações de saque, de depósito ou ambas no modo de prioridade.
Nos dispositivos com Android 7.1 (nível 25 da API) 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 as notificações dessas configurações do usuário, é necessário definir uma categoria para todo o sistema.
Notificações para serviços em primeiro plano
Uma notificação é necessária quando o app está executando um serviço em primeiro plano, um Service em execução 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
em 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 reproduzir mídia em segundo plano.
Comportamentos de notificação
Android 16.0, nível 36 da API
As notificações agora são agrupadas automaticamente em nome do app.
As seguintes notificações são agrupadas automaticamente:
- Notificações sem resumo
- Notificações sem notificações secundárias
- Notificações com uma ou poucas notificações filhas
Android 15.0, nível da API 35
Período de espera
O Android 15 apresenta um recurso de atenuar 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.
Notificações críticas que exigem áudio e vibração para chamar a atenção não estão sujeitas ao resfriamento. O usuário pode desativar o atenuar notificações nas configurações.