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.
- A ação semântica precisa ser definida como
Se a notificação tiver uma resposta
Action
, oAction
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 únicoRemoteInput
.
- A ação semântica precisa ser definida como
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:
- Pertencer a
CATEGORY_CALL
- Definir uma intent de tela cheia
- Ser marcada como em andamento usando o método
setOngoing()
- Pertencer a
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 |
---|---|---|
|
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. |
|
Ambiente autônomo | RemoteViews e visualizações de conteúdo personalizadas não são compatíveis. |
|
Ambiente autônomo | Selos de notificação não são compatíveis. |
| 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. |
|
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 |
---|---|---|
|
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:
|
|
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. |