Visão geral de notificações

Uma notificação é uma mensagem que o Android exibe fora da interface do seu app para fornecer ao usuário lembretes, comunicações de outras pessoas ou outros informações oportunas do seu app. Os usuários podem tocar na notificação para abrir seu ou realizar 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 um notificação.

Para mais informações sobre design de notificação e padrões de interação, consulte a Design de notificações guia.

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 da gaveta de notificação e um indicador no ícone do aplicativo. 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 do status barra.

Os usuários podem deslizar para baixo na barra de status para abrir a gaveta de notificações, onde ele poderá 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 de No Android 13, essa visualização expandida inclui um botão que permite aos usuários interromper um app em primeiro plano e serviços.

Uma notificação permanece visível na gaveta até que seja dispensada pelo app ou usuário.

Notificação de informações básicas

A partir do Android 5.0, as notificações podem aparecer brevemente em um chamada notificação de alerta. Esse comportamento normalmente ocorre para eventos notificações que o usuário precisa saber imediatamente, e elas só aparecem se o dispositivo estiver desbloqueado.

Figura 3. Uma notificação de alerta é exibida na frente do app em primeiro plano.

A notificação de alerta é exibida quando o app emite a notificação. Ela desaparece após alguns instantes, mas permanece visível na gaveta de notificações 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 ligadas dispositivos com o Android 7.1 (nível 25 da API) e anteriores.

  • O canal de notificação tem alta 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 programaticamente se as notificações postadas pelo app serão exibidas em um tela de bloqueio segura e, se for, o nível de detalhe visível.

Os usuários podem utilizar as configurações do sistema para escolher o nível de detalhes visível na fechadura notificações da tela ou para desativar todas as notificações da tela de bloqueio. Começando com No 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 escondidos.

Para saber mais, consulte Definir a tela de bloqueio visibilidade.

Indicador do ícone do app

Em telas de início compatíveis em dispositivos que executam o Android 8.0 (nível 26 da API) e versões mais recentes, ícones dos apps indicam novas notificações por meio de um indicador colorido conhecido como notification. no ícone correspondente na tela de início do app.

Os usuários podem tocar e segurar um ícone de aplicativo para ver as notificações desse aplicativo. Usuários pode dispensar ou agir sobre as notificações desse menu, semelhante à notificação gaveta.

Figura 5. Insígnias de notificação e o botão de toque e menu suspenso.

Para saber mais sobre o funcionamento dos ícones, consulte Modificar uma notificação .

Dispositivos Wear OS

Se o usuário tiver um dispositivo Wear OS pareado, todas as notificações serão exibidas nele. automaticamente, incluindo detalhes expansíveis e botões de ação.

Você pode melhorar a experiência personalizando a aparência do notificações em wearables e fornecendo diferentes ações, incluindo respostas sugeridas e respostas de entrada de texto por voz. Para mais informações, veja como adicionar recursos específicos para wearables notificação.

Figura 6. As notificações aparecem automaticamente em um Wear OS pareado dispositivo.

Anatomia de uma notificação

O design de uma notificação é determinado pelos modelos do sistema e pelo aplicativo define o conteúdo de cada parte do modelo. Alguns detalhes aparecem apenas 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 maneira:

  1. Ícone pequeno: obrigatório; definir usando setSmallIcon():
  2. Nome do app: fornecido pelo sistema.
  3. Carimbo de data/hora: fornecido pelo sistema, mas você pode substituí-lo usando setWhen() ou escondê-los usando setShowWhen(false).
  4. Ícone grande: opcional; geralmente usado apenas para fotos de contatos. Não o use no ícone do app. Definir usando setLargeIcon():
  5. Título: opcional; definir usando setContentTitle():
  6. Texto: opcional; definir usando setContentText():

Recomendamos o uso de modelos de sistema para uma compatibilidade de design adequada em todos os dispositivos. Se necessário, crie uma notificação personalizada layout padrão.

Para mais informações sobre como criar uma notificação com esses recursos e mais, leia Criar um notificação.

Ações da notificação

Embora não seja obrigatório, é recomendável abrir todas as notificações uma atividade de aplicativo apropriada quando ele é tocado. Além desse padrão, você poderá adicionar botões de ação que concluam uma ação a partir da notificação, muitas vezes sem abrir uma atividade, como como 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), você pode adicionar uma ação para responder ou digite outros textos diretamente 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 um notificação.

Exigir um dispositivo desbloqueado

Os usuários podem ver ações de notificação na tela de bloqueio do dispositivo. Se um faz com que um app inicie uma atividade ou envie uma resposta direta; os usuários precisam desbloquear o dispositivo antes que o app 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 de forma que o dispositivo precise ser desbloqueado para que o app invoque essa ação, sem independentemente do fluxo de trabalho que 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 uma determinada notificação ação, transmita true para setAuthenticationRequired() ao criar sua ação de notificação, conforme mostrado no snippet de código a seguir:

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 por meio da aplicação de um modelo adicional, como mostrado na figura 9.

Figura 9. Uma notificação expansível para imagens grandes em textos.

Você também pode criar uma notificação expansível com uma imagem, no estilo de caixa de entrada, em um chat ou controles de mídia. Para mais informações, saiba mais em Criar uma notificação expansível.

Grupos e atualizações de notificação

Para evitar sobrecarregar seus usuários com notificações múltiplas ou redundantes ao tiver atualizações adicionais, atualize um notificação, em vez de emitir um novo ou usar o modo de caixa de entrada notificação a ser exibida atualizações de conversas.

No entanto, se for necessário enviar várias notificações, considere agrupá-las as notificações separadas em um grupo, disponível no Android 7.0 e em versões mais recentes.

Um grupo de notificações permite recolher várias notificações em uma postagem em a gaveta de notificações com um resumo. O usuário pode expandir progressivamente o grupo de notificações e cada notificação dentro dele para mais detalhes, conforme mostrado 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 devem ser atribuídas a um canal ou não serão exibidos. Isso permite que os usuários desativem notificações específicas canais do seu app em vez de desativar todas as notificações. Os usuários podem controlar as opções visuais e auditivas para cada canal no sistema Android. conforme mostrado na figura 11. Os usuários também podem tocar e manter uma notificação para alterar comportamentos para o canal associado.

Nos dispositivos com o Android 7.1 (nível 25 da API) e anteriores, os usuários podem gerenciar notificações somente por app. Cada app tem apenas um canal no Android 7.1 e 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 aplicativo também pode criar canais de notificação em resposta a escolhas feitas 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 superior, para que todas as notificações sejam postadas no mesmo canal de notificação têm o mesmo comportamento. Isso é descrito a seguir nesta seção.

Para mais informações, consulte Criar e gerenciar notificações canais.

Importância da notificação

O Android usa a importância de uma notificação para determinar o quanto interrompe o usuário visual e audívelmente. Quanto maior a importância de uma notificação, mais interruptiva ela será.

No Android 7.1 (API de nível 25) e anteriores, a importância de uma notificação é determinada por da notificação. priority

No Android 8.0 (nível 26 da API) e versões mais recentes, a importância de uma notificação é determinado pelo importance do canal em que a notificação foi postada. Os usuários podem mudar a importância um canal de notificação nas configurações do sistema, como mostrado na figura 12.

Figura 12. Os usuários podem mudar a importância de cada canal no Android. 8.0 e superior.

Os níveis de importância possíveis e os comportamentos de notificação associados são os seguinte:

  • Urgente: emite um som e aparece como uma notificação de alerta.

  • Alto: 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 no sistema sem interrupções Locais da IU, como na gaveta de notificações e como um indicador na tela de início ícone. No entanto, é possível modificar a aparência da notificação .

Para mais informações, leia sobre como definir o 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 o som e a vibração de todas as notificações. Notificações estáticas aparecem normalmente na interface do sistema, a menos que o usuário especifique o contrário.

Existem 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 do sistema interrompê-los, como apenas alarmes, lembretes, eventos, chamadas ou mensagens. No caso de mensagens e chamadas, os usuários podem filtrar com base no remetente ou autor da chamada, conforme mostrado na figura 13.

Figura 13. Os usuários podem autorizar notificações com base no seguinte: categorias do 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 por categorias específicas do app, também conhecidas como canais, substituindo o modo "Não perturbe" em cada canal. Para exemplo, um aplicativo de pagamento pode ter canais para notificações relacionadas a saques e depósitos. O usuário pode permitir notificações de saque, depósito notificações ou ambas no modo de prioridade.

Em dispositivos com o Android 7.1 (nível 25 da API) e anteriores, os usuários podem permitir as notificações para cada app, e não para canal a canal.

Para configurar suas notificações para essas configurações de usuário, você deve definir um em todo o sistema categoria.

Notificações para serviços em primeiro plano

Uma notificação é necessária quando seu app está em primeiro plano serviço: um Service em execução no um plano de fundo que seja de longa duração e perceptível para o usuário, como um plano de fundo de futebol. Esta notificação não pode ser dispensada como as outras. Para remover a notificação, o serviço deve ser interrompido ou removido do primeiro plano estado.

Para mais informações, leia Primeiro plano e serviços. Se você está criando um player de vídeo, leia também Como tocar mídia em segundo plano.

Limites de postagens

A partir do Android 8.1 (nível 27 da API), os apps não podem emitir sons de notificação mais de uma vez por segundo. Se o app postar várias notificações em um segundo, todas serão exibidas conforme o esperado, mas só a primeira notificação por segundo emitirá um som.

No entanto, o Android também aplica um limite de taxa para atualizar uma notificação. Se você posta atualizações em uma única notificação com muita frequência, como muitas em menos de durante um segundo, o sistema pode ignorar as atualizações.

Compatibilidade de notificações

A interface do sistema de notificações do Android e as APIs relacionadas a notificações evoluir. Para usar os recursos mais recentes da API de notificação e oferecer suporte a dispositivos, use a API de notificação da Biblioteca de Suporte NotificationCompat, e as subclasses, além de NotificationManagerCompat Isso permite que você evite escrever código condicional para verificar os níveis de API, porque esses As APIs cuidam disso.

A NotificationCompat é atualizada conforme a plataforma evolui para incluir os métodos mais recentes. No entanto, a disponibilidade de um método em NotificationCompat não garantir que o recurso correspondente seja fornecido em dispositivos mais antigos. Em alguns casos, chamar uma API recém-introduzida resulta em um ambiente autônomo em dispositivos mais antigos.

A seguir está um resumo das mudanças de comportamento mais notáveis por nível de API para Notificações do Android.

Android 5.0, API de nível 21

  • Apresenta a tela de bloqueio e notificações de alerta.

  • Permite que o usuário coloque o telefone no modo Não perturbe e configure quais as notificações poderão interrompê-las quando o dispositivo estiver modo somente prioridade.

  • Adiciona métodos para definir se uma notificação será exibida na tela de bloqueio como setVisibility()), e para especificar uma versão "pública" do texto da notificação.

  • Adição do método setPriority(), que informa ao sistema o nível de interrupção do é a notificação. Por exemplo, definir a prioridade como alta faz com que aparecem como uma notificação de alerta.

  • Adiciona compatibilidade com pilhas de notificação ao Android Wear (agora chamado Wear OS) dispositivos. Colocar notificações em uma pilha usando setGroup() Não é possível usar pilhas de notificações, depois conhecidas como grupos ou pacotes. tablets ou smartphones até o Android 7.0 (nível 24 da API).

Android 7.0, API de nível 24

  • Reformula os modelos de notificação para enfatizar a imagem principal e avatar.

  • Adiciona três modelos de notificação: um para apps de mensagens e outros dois para decorar visualizações de conteúdo personalizado com affordance expansível e outros as decorações do sistema.

  • Adiciona suporte a dispositivos portáteis, como telefones e tablets, para grupos de notificação. Usa a mesma API que o Android Wear (agora chamado Wear OS) introduzidas no Android 5.0 (nível 21 da API).

  • Permite que os usuários respondam dentro de uma notificação usando a resposta em linha. Eles podem entrar que é roteada para o aplicativo principal da notificação.

Android 8.0, API de nível 26

  • Faz com que notificações individuais sejam colocadas em um channel

  • Permite que os usuários desativem as notificações por canal, em vez de desativar todas as notificações notificações de um app.

  • Faz com que os apps com notificações ativas exibam um selo de notificação na parte superior o ícone do app na tela inicial ou na tela de início.

  • Permite que os usuários adie uma notificação na gaveta. É possível definir uma configuração tempo limite para uma notificação.

  • Permite definir a cor do plano de fundo da notificação.

  • Algumas APIs relacionadas aos comportamentos de notificação foram movidas da Notification para NotificationChannel Por exemplo, use NotificationChannel.setImportance() em vez de NotificationCompat.Builder.setPriority() para o Android 8.0 e versões mais recentes.

Android 13.0, API de nível 33

Android 14.0, API de nível 34

  • Limita as notificações de intent em tela cheia a apps que fornecem chamadas e alarmes. Use a API NotificationManager.canUseFullScreenIntent para verifique se o app tem permissão. Caso contrário, o app pode usar ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT para abrir a página de configurações. em que os usuários podem conceder a permissão.

  • Altera a experiência dos usuários com notificações não dispensáveis permitindo que os usuários dispensem as notificações mesmo quando a flag Notification.FLAG_ONGOING_EVENT está definida. Isso não se aplica a Notificações CallStyle se a sinalização Notification.FLAG_ONGOING_EVENT for ou controlador de política de dispositivo (DPC) e pacotes de suporte para em uma empresa. Isso também não se aplica quando o smartphone está bloqueado ou se o o usuário seleciona Limpar tudo.