Notificações no Android Automotive OS

As notificações fornecem aos motoristas informações curtas e oportunas sobre eventos do seu app enquanto ele não está em uso. Notificações podem aparecer na Central de notificações, e algumas delas também podem ser exibidas como notificações de alerta na tela. Para criar notificações para o Android Automotive OS, use a mesma API NotificationBuilder que é usada para outros dispositivos. No entanto, para garantir a segurança dos motoristas e minimizar distrações, alguns métodos e classes da API estão restritos ou se comportam de outra forma.

Como as notificações se diferem nos carros

Para criar um ambiente seguro e livre de distrações ao dirigir, as notificações no Android Automotive OS diferem das notificações em outros dispositivos das seguintes maneiras:

  • Interação do usuário simplificada
  • Restrições de UX com base no estado da direção

Interação do usuário simplificada

Para garantir que os motoristas possam se concentrar na estrada, as notificações no carro têm um modelo simplificado de interação do usuário com os seguintes recursos:

Sem controles complexos

As notificações não permitem controles complexos, como tocar para expandir uma notificação, tocar em uma notificação e mantê-la pressionada para ver mais opções ou usar controles de gestos de deslizar.

Sons de notificação

As notificações só tocam um som se acionam uma notificação de alerta.

Botões automáticos de reprodução e desativação de microfone para notificações de mensagens

O Android Automotive OS adiciona automaticamente os botões Tocar e Desativar som a todas as notificações de mensagens compatíveis com o carro.

  • Tocar: lê a notificação para o motorista usando o assistente digital padrão do usuário (como o Google Assistente) ou o sistema de conversão de texto em voz do veículo.
  • Desativar som: impede que notificações de alerta sejam exibidas para quaisquer mensagens futuras da conversa até o fim da viagem. As notificações de mensagem de uma conversa com som desativado ainda serão exibidas na Central de notificações, e o motorista poderá ativar o som da conversa nesse local.

Opções simplificadas de exibição de notificação

RemoteViews e visualizações de conteúdo personalizadas não são compatíveis. Além disso, os estilos de notificação a seguir não são compatíveis:

  • BigPictureStyle
  • BigTextStyle
  • InboxStyle

Se seu app enviar uma notificação ao Android Automotive OS usando um desses estilos de notificação, apenas o texto de resumo será exibido.

Gerenciamento de canal de notificação simplificado

O Android Automotive OS não é compatível com canais de notificação e recursos de IU relacionados para diminuir a prevalência de tarefas de gerenciamento avançadas em dispositivos automotivos.

Restrições de UX com base no estado da direção

O Android Automotive OS inclui um mecanismo de restrições de UX. Os fabricantes de automóveis podem usar esse mecanismo para restringir as notificações com base no estado de direção do carro das seguintes maneiras:

  • Truncando strings de notificação em um número específico de caracteres
  • Ocultando resumos de mensagem para notificações CATEGORY_MESSAGE
  • Limitando o número de notificações que a central pode exibir

Tipos de recursos compatíveis

Por padrão, o Android Automotive OS é compatível com um conjunto limitado de tipos de recursos que podem ser usados para notificações em outros dispositivos. Esse subconjunto inclui os seguintes tipos de recursos:

  • Drawables
  • Ícones
  • Imagens

Requisitos de compatibilidade para notificações de mensagens

Para proporcionar uma experiência do usuário consistente e com o mínimo de distrações, as notificações de mensagens têm requisitos especiais no Android Automotive OS.

Uma notificação de mensagem será compatível com o carro se atender aos seguintes requisitos:

  • Pertence à categoria CATEGORY_MESSAGE.
  • Usa o estilo Notification.MessagingStyle.
  • Inclui apenas mensagens não lidas.
  • Tem uma Action marcada como lida que atende aos seguintes requisitos:

    • A ação semântica precisa ser definida como Action.SEMANTIC_ACTION_MARK_AS_READ.
    • A Action precisa indicar que não mostrará nenhuma interface do usuário quando acionada.
  • Se a notificação tiver uma Action de resposta, a Action atenderá aos seguintes requisitos:

    • A ação semântica precisa ser definida como Action.SEMANTIC_ACTION_REPLY.
    • A Action precisa indicar que não mostrará nenhuma interface do usuário quando acionada.
    • A Action precisa conter uma única RemoteInput.

Central de notificações

Quase todas as notificações serão exibidas na Central de notificações, mesmo se elas também tiverem sido acionadas como notificações de alerta. As notificações permanecem na central durante toda a viagem.

Os motoristas podem interagir com as notificações na central. Dependendo do fabricante do carro, os motoristas acessam a Central de notificações de uma destas maneiras:

  • Deslizando de cima para baixo na tela (semelhante à gaveta de notificações em outros dispositivos)
  • Tocando em um botão na interface do sistema

Notificações agrupadas

As notificações relacionadas são automaticamente agrupadas na Central de notificações, como em uma gaveta de notificações em outros dispositivos. No entanto, quando o motorista toca no resumo de um grupo na central, em vez de iniciar uma PendingIntent, o grupo é expandido para mostrar todas as notificações.

Notificações que não aparecem na Central de notificações

As notificações a seguir não aparecem na Central de notificações:

  • Notificações de reprodução de mídia para CATEGORY_TRANSPORT. Informações sobre a reprodução de mídia em andamento são agrupadas pelo Android Automotive OS e exibidas em um espaço dedicado a isso na interface do usuário.
  • Notificações de navegação passo a passo para CATEGORY_NAVIGATION.
  • Notificações de serviço em primeiro plano para apps com privilégios de sistema e apps conectados à chave de plataforma que têm um nível de importância inferior ao IMPORTANCE_DEFAULT.

Notificações de alerta

As notificações de alerta são exibidas como cards de notificação no topo da tela. Como uma notificação de alerta chama a atenção do motorista, os apps só poderão acioná-la quando a informação for crucial para a direção, urgente e acionável. Apenas algumas categorias de notificação podem acionar uma notificação de alerta.

Os fabricantes de automóveis podem decidir permitir ou não que as notificações de alerta apareçam enquanto a Central de notificações estiver aberta.

Como os apps acionam notificações de alerta

Os apps têm requisitos diferentes para acionar uma notificação de alerta, dependendo de terem ou não privilégios de sistema.

Para apps com privilégios de sistema e apps conectados à chave da plataforma
O app pode acionar uma notificação de alerta definindo a importância do canal de notificações como IMPORTANCE_HIGH ou superior.
Para todos os outros apps

Para acionar uma notificação de alerta, o app define a importância do canal de notificação como IMPORTANCE_HIGH ou superior e garante que a notificação pertença a uma das seguintes categorias:

Duração de uma notificação de alerta

Depois que um app aciona uma notificação de alerta, ela aparece imediatamente na tela do carro. Se o motorista não fizer nada, a notificação será dispensada automaticamente após oito segundos (configurável pelo fabricante do carro), exceto nos seguintes casos:

  • Notificações de alerta para algumas chamadas recebidas não podem ser dispensadas e a notificação permanece até que o motorista aceite a chamada ou ela seja encerrada. Para se qualificar como uma notificação de alerta de chamada recebida não dispensável, uma notificação precisa atender aos seguintes requisitos:

  • As notificações de alerta permanecerão se um app atualizar a notificação dentro do intervalo de oito segundos.

Quando uma notificação de alerta é dispensada, ela é listada na Central de notificações, a não ser que seja uma notificação da CATEGORY_NAVIGATION.

Alterações e restrições da API Notification para automóveis

Esta seção resume as diferenças para cada classe em que a API Notifications se comporta de maneira diferente ou apresenta restrições para o Android Automotive OS.

Notification.Builder

As tabelas a seguir descrevem as alterações e restrições da API na classe Notification.Builder.

Tabela 1. Alterações em métodos públicos para Notification.Builder

Métodos públicos Efeito Descrição

addAction()

Ambiente autônomo condicional As notificações Notification.MessagingStyle precisam adicionar as ações especificadas nos requisitos de compatibilidade. Nenhuma outra ação adicionada será renderizada como um botão de notificação.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

Ambiente autônomo RemoteViews e visualizações de conteúdo personalizadas não são compatíveis.

setBadgeIconType()

setNumber()

Ambiente autônomo Selos de notificação não são compatíveis.

setChronometerCountDown()

setUsesChronometer()

Ambiente autônomo Timers de contagem regressiva não são compatíveis.
setColorized() Restrições modificadas

Apps conectados à plataforma: configuráveis, permitidos por padrão.

Apps com privilégios de sistema: configurados pela plataforma, não permitidos por padrão.

Todos os outros apps: configurados pela plataforma, não permitidos por padrão.

setFullScreenIntent() Comportamento modificado Não inicia o intent automaticamente.
setLargeIcon() Comportamento modificado Ícones grandes são mostrados no lado direito da notificação.
setLights() Ambiente autônomo Os dispositivos com SO Android Automotive não têm luzes indicadoras LED.
setOngoing() Comportamento modificado

O comportamento é diferente quando a notificação também está acionando uma notificação de alerta.

Só tornará a notificação de alerta não dispensável se ela for para uma chamada recebida. Para se qualificar como uma notificação de alerta de chamada recebida não dispensável, uma notificação precisa atender aos seguintes requisitos:

Os motoristas podem dispensar todos os outros tipos de notificação de alerta.

setPublicVersion()

setVisibility()

Ambiente autônomo O modo privado não é compatível.
setSettingsText() Ambiente autônomo As notificações não são compatíveis com recursos vinculados às configurações do aplicativo. Os motoristas acessam essas configurações pelo próprio app.
setTicker() Ambiente autônomo O texto em mostrador não é compatível.

Tabela 2. Alterações em classes aninhadas para Notification.Builder

Classes aninhadas Efeito Descrição

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

Não usado Apenas o texto do resumo será exibido. Notificações detalhadas não são compatíveis com esses estilos.
Notification.BubbleMetadata Não usado O uso de bolhas não é compatível.
Notification.MediaStyle Oculto As notificações com esse estilo são ocultas. O Android Automotive OS gerencia as interações da interface do usuário para reprodução e notificações de mídia.
Notification.MessagingStyle Comportamento modificado

As notificações com esse estilo têm as seguintes diferenças:

Notification.CarExtender

Notification.WearableExtender

Não usado O uso de extensores não é compatível.

Notification.Action.Builder

A tabela a seguir descreve as alterações e restrições da API na classe Notification.Action.Builder.

Tabela 3. Alterações em métodos públicos para Notification.Action.Builder

Métodos públicos Efeito Descrição
Construtores públicos Comportamento modificado Os ícones especificados em construtores públicos são ignorados.
addRemoteInput Comportamento modificado Para minimizar a distração do motorista, um assistente digital (como o Google Assistente) insere a resposta a uma mensagem para o usuário. Os usuários não têm permissão para digitar mensagens.
setAllowGeneratedReplies Ambiente autônomo O recurso "Resposta inteligente" não é compatível.