O sistema promove notificações de atualizações dinâmicas. As notificações promovidas aparecem com mais destaque nas plataformas do sistema, inclusive na parte de cima da gaveta de notificações e na tela de bloqueio, e como um ícone na barra de status.

Os cards de notificação promovida têm as seguintes características de aparência:
- Expandido por padrão
- Não recolhível
Sua notificação precisa atender aos seguintes requisitos para se qualificar como uma atualização ao vivo:
- Precisa ser "Padrão/sem estilo",
BigTextStyle
,CallStyle
ouProgressStyle
. - É necessário solicitar a seguinte permissão que não é de execução no manifesto do Android
android.permission.POST_PROMOTED_NOTIFICATIONS
. - É necessário solicitar a promoção usando
EXTRA_REQUEST_PROMOTED_ONGOING
ouNotificationCompat.Builder#requestPromotedOngoing
. - Precisa ser
ongoing
(definirFLAG_ONGOING_EVENT
). - Precisa ter um
contentTitle
definido. - NÃO pode ter nenhum
customContentView
definido (semRemoteViews
). - NÃO pode ser o resumo de um grupo usando
setGroupSummar
y. - O canal de notificação NÃO pode ter
IMPORTANCE_MIN
.
Características da promoção
As APIs a seguir ajudam a determinar se o sistema vai promover sua notificação:
Notification.FLAG_PROMOTED_ONGOING
indica se a notificação é promovendo.Notification.hasPromotableCharacteristics()
valida se o sistema pode promover a notificação. Esse método não considera se o usuário desativou as atualizações ao vivo do app nas configurações.NotificationManager.canPostPromotedNotifications()
verifica se o app pode postar uma notificação promovida, por exemplo, se o usuário ativou ou desativou nas configurações.Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS
é a ação de intent que permite que os apps enviem os usuários para as Configurações para ativar esse recurso.
Critérios de uso
Use as atualizações em tempo real para atividades contínuas, iniciadas pelo usuário e que dependem do tempo.
Em andamento
Uma atualização em tempo real precisa representar uma atividade que está em andamento, com início e término distintos. Se uma atividade ocorrer no passado, não use uma atualização ao vivo. Em vez disso, use uma notificação padrão. Isso também é válido para eventos que ainda não começaram, embora os eventos que estão prestes a começar possam usar uma atualização ao vivo.
As atualizações em tempo real representam atividades em andamento. Não use as atualizações em tempo real para oferecer acesso acelerado à funcionalidade do app. Para fazer isso, use um widget de app ou um bloco personalizado de Configurações rápidas.
- Usos adequados:navegação ativa, ligações telefônicas em andamento, acompanhamento ativo de caronas e acompanhamento ativo de entrega de alimentos.
- Usos inadequados:anúncios, promoções, mensagens de chat, alertas, eventos de calendário futuros e acesso rápido aos recursos do app.
Iniciado pelo usuário
A maioria dos Atualizações ao vivo precisa representar atividades acionadas explicitamente pelo usuário, como iniciar um treino, iniciar a navegação no carro ou chamar um transporte compartilhado. Não mostre informações do ambiente, como informações sobre o ambiente, interesses ou eventos futuros do usuário, em uma atualização em tempo real. Não permita que atividades acionadas por terceiros gerem atualizações ao vivo.
Às vezes, um usuário pode realizar uma ação que inicia uma atividade por algum tempo no futuro. Por exemplo, se o usuário comprar passagens para um voo ou um show, se inscrever em um torneio ou indicar que vai participar de um evento com hora marcada. Nesses casos, pode ser apropriado mostrar automaticamente uma atualização ao vivo quando o evento programado começar. No entanto, os apps precisam ajustar os acionadores para que eles apareçam apenas quando a atividade for iminente. Se o usuário indicar explicitamente que quer começar a monitorar um evento em segundo plano, como um jogo de esporte, você poderá começar a postar atualizações ao vivo para esse evento. No entanto, você também precisa incluir uma ação Desfixar na notificação associada.
Sensível ao tempo
Mostre uma atualização em tempo real somente se ela exigir a atenção do usuário durante a atividade. Um caso de uso importante para as atualizações ao vivo é o monitoramento, quando o usuário recebe benefícios significativos ao dar uma olhada na atualização ao vivo para acompanhar o estado em evolução da atividade.
Uma atualização em tempo real geralmente é adequada para atividades que fazem a transição entre atualizações em tempo real e notificações normais. Por exemplo, mostrar uma notificação de cartão de embarque é apropriado muitas horas antes do voo de um usuário, mas a notificação só deve se tornar uma atualização ao vivo quando o usuário tiver uma necessidade urgente, como quando ele chegar ao aeroporto ou ao local ou quando o embarque começar. Por outro lado, uma atualização em tempo real não é adequada para rastrear um pacote, já que o usuário não precisa monitorar isso constantemente.
ícones de status
Os ícones de status permitem que os usuários acompanhem as atualizações em tempo real quando a notificação não está
visível. Use setShortCriticalText
ou setWhen
para transmitir
informações importantes sobre o estado da notificação focada no progresso.

Notification.Builder#setSmallIcon
.
Notification.Builder#setShortCriticalText
para mostrar o tempo absoluto.
Notification.Builder#setShortCriticalText
para transmitir informações essenciais.Quando o tempo
O tempo "when" aciona uma contagem regressiva para a duração da notificação, a menos que ela seja dispensada ou atualizada.
- O horário "quando" é pelo menos dois minutos no futuro: se o horário atual for 10h05 e o horário "quando" estiver definido como 10h10, o ícone vai mostrar "5min".
- Se o horário estiver há mais de um minuto, a notificação não será mostrada.
- Use
setShowWhen
paraFALSE
se você não quiser que a notificação mostrada na aba tenha um horário.
Aparência do ícone de status
O ícone de status sempre inclui um ícone e, opcionalmente, texto. O ícone tem uma largura máxima de 96 dp. Mostre o texto de acordo com os seguintes critérios:
- Se tiver menos de 7 caracteres, mostre o texto inteiro.
- Se menos da metade do texto for exibida, mostre apenas o ícone.
- Se mais da metade do texto for exibida, mostre o máximo possível.
Dismissal
Os usuários podem controlar a visibilidade das notificações na sombra de notificações. Publicar atualizações em tempo real indesejadas pode fazer com que os usuários revoguem a permissão de publicação de um app.
Para impedir que os usuários desativem completamente as atualizações em tempo real, evite postar atualizações
que os usuários possam dispensar. Não reposte atualizações em tempo real que o usuário descartou. Use
setDeleteIntent
para detectar atualizações dispensadas.