O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

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 SO Android Automotive, 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 são diferentes em carros

Para criar um ambiente seguro e livre de distrações ao dirigir, as notificações no SO Android Automotive 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 sistema operacional Android Automotive adiciona automaticamente os botões Play e Mute 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 do veículo.
  • Mute: 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 SO Android Automotive usando um desses estilos de notificação, apenas o texto de resumo será exibido.

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

O SO Android Automotive 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 SO Android Automotive é compatível com um conjunto limitado de tipos de recursos que podem ser usados para notificações em outros dispositivos. Este 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 mínima, as notificações de mensagens têm requisitos especiais no SO Android Automotive.

Uma notificação de mensagens 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 um Action marcado como lido 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 resposta Action, o 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.
    • O Action precisa conter um único RemoteInput.

Central de notificações

Quase todas as notificações sã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 duração da 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 ou ambas 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 um 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 SO Android Automotive 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 privilegiados pelo 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ções como IMPORTANCE_HIGH ou superior e se certifica de 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 indispensável para uma chamada, a 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 não ser que seja uma notificação de 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 SO Android Automotive.

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 ação adicional adicionada será processada 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 alteradas

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 alterado Não inicia o intent automaticamente.
setLargeIcon() Comportamento alterado Í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 alterado

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

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 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 SO Android Automotive gerencia as interações da interface do usuário para reprodução e notificações de mídia.
Notification.MessagingStyle Comportamento alterado

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

Notification.CarExtender

Notification.WearableExtender

Not used 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 alterado Os ícones especificados em construtores públicos são ignorados.
addRemoteInput Comportamento alterado 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.