Sobre as notificações

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:

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.

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 podem ver mais detalhes e realizar ações com a notificação.

Figura 2. Notificações na gaveta de notificações.

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.

Figura 3. Uma notificação de alerta aparece na frente do aplicativo em primeiro plano.

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.

Figura 4. Notificações na tela de bloqueio com conteúdo sensível oculto.

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.

Figura 5. Ícones de notificação e o menu de tocar e manter pressionado.

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.

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 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.

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

  1. Ícone pequeno: obrigatório; definido usando setSmallIcon().
  2. Nome do app: fornecido pelo sistema.
  3. Carimbo de data/hora: fornecido pelo sistema, mas pode ser substituído usando setWhen() ou ocultado usando setShowWhen(false).
  4. Ícone grande: opcional; geralmente usado apenas para fotos de contato. Não use-o no ícone do app. Defina usando setLargeIcon().
  5. Título: opcional; definido usando setContentTitle().
  6. 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.

Figura 8. Uma notificação com botões de ação.

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.

Figura 9. Uma notificação expansível para textos longos.

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.

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 (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.

Figura 11. Configurações de notificação do app Relógio e um dos canais dele.

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.

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é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.
Figura 13. Os usuários podem permitir notificações com base em categorias de todo o sistema (à esquerda) e remetente ou autor da chamada (à direita).

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.

Figura 14. As configurações do recurso Atenuar Notificações.