Notificações no SO Android Automotive

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 ajudar a garantir a segurança dos motoristas e minimizar as distrações, alguns métodos e classes da API estão restritos ou se comportam de maneira diferente.

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 Reproduzir e Desativar som a todas as notificações de mensagens compatíveis com o carro.

  • Play: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 padrão 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 oferece suporte a canais de notificação e recursos de interface 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:

  • Ele pertence à categoria CATEGORY_MESSAGE.
  • Ele usa o estilo Notification.MessagingStyle.
  • Ela inclui apenas as mensagens não lidas.
  • Ele tem uma Action "marcar como lida" que atende aos seguintes requisitos:

  • 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.
    • O Action indica que não mostra nenhuma interface do usuário quando acionado.
    • O Action contém 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:

  • Deslizar de cima para baixo na tela, de forma semelhante à gaveta de notificações em outros dispositivos.
  • Tocar em um botão na interface do sistema

Notificações agrupadas

As notificações relacionadas são agrupadas automaticamente na Central de notificações, como na 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:

  • Media playback. Informações sobre a reprodução de mídia em andamento são coletadas pelo Android Automotive OS e exibidas em um local dedicado na interface do usuário. Observe que setMediaSession precisa ser chamado com um token não nulo para que a notificação seja reconhecida como reprodução de mídia.
  • 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, só acione essa notificação quando as informações forem essenciais para a direção, movimentadas e acionáveis. Apenas algumas categorias de notificação podem acionar uma notificação de alerta.

Os fabricantes de carros podem decidir se vão permitir 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 privilégio de sistema.

Apps privilegiados pelo sistema e apps assinados com a 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.
Todos os outros apps

O app pode acionar uma notificação de alerta definindo a importância do canal de notificações como IMPORTANCE_HIGH ou superior e garantindo 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 de alerta será dispensada automaticamente após oito segundos, exceto nos seguintes casos:

  • As notificações de alerta para determinadas chamadas recebidas não podem ser dispensadas e 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 permanecem 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 menos que seja uma notificação 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 1 e 2 descrevem as mudanças 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 assinados por 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 aciona uma notificação de alerta.

setOngoing() só torna 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 não dispensável para uma chamada recebida, uma notificação precisa atender a 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 de resumo é 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 3 descreve as mudanças 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 para uma mensagem para o usuário. Os usuários não podem digitar mensagens.
setAllowGeneratedReplies Ambiente autônomo O recurso "Resposta inteligente" não é compatível.