Modo de compatibilidade do Android Automotive OS

Para simplificar o processo de transferência de apps para dispositivos Android Automotive OS, alguns carros vêm com um modo de compatibilidade que resolve problemas comuns enfrentados ao transferir apps para dispositivos móveis para carros.

Embora esse modo de compatibilidade seja usado pelo programa de apps para dispositivos móveis criados para carros, os apps que não fazem parte dele também podem ser executados nele.

Entender o modo de compatibilidade

O modo de compatibilidade do Android Automotive OS é um recurso de software disponível em alguns veículos para melhorar a experiência do usuário com apps criados para dispositivos móveis quando executados no Android Automotive OS.

Navegação de retorno

Diferente de outros formatos, não é necessário que os dispositivos Android Automotive OS tenham uma affordance de hardware ou software. O modo de compatibilidade resolve isso exigindo um sistema que ofereça uma ação de retorno, seja um botão de hardware, um botão de software, um gesto ou outra coisa. Isso elimina a necessidade de os apps garantirem a navegabilidade apenas pelos próprios elementos da interface.

O usuário pode navegar de volta para a tela anterior, mesmo que o app não ofereça uma affordance de volta na interface.
O usuário não pode voltar à tela anterior.

Renderização da área segura

Em carros, elementos de software e hardware, como barras de sistema e cortes de tela, podem acabar com as suposições feitas por apps desenvolvidos principalmente para dispositivos móveis. O modo de compatibilidade resolve esse problema garantindo que os apps sejam renderizados em uma área segura.

Dimensionamento de densidade

Como a distância de interação em carros é maior do que em outros dispositivos de tela grande, os alvos de toque e os tamanhos de fonte geralmente são menores do que o recomendado ao ser executado em um carro. O modo de compatibilidade resolve esse problema permitindo que os OEMs especifiquem um fator de escalonamento de DPI usado ao renderizar apps.

Ciclo de vida da atividade

Conforme descrito em Criar apps para carros estacionados no Android Automotive OS, o SO bloqueia as atividades do app automaticamente quando o carro entra no modo de direção para reduzir as distrações do motorista. Em dispositivos com o modo de compatibilidade, a interface de bloqueio do OEM não pode ser transparente. Assim, o app não fica mais visível e faz a transição para o estado de ciclo de vida parado quando bloqueado.

Configurar o modo de compatibilidade

Por padrão, as atividades do app são executadas no modo de compatibilidade quando o dispositivo oferece suporte a ele. As atividades não são executadas no modo de compatibilidade nos seguintes casos:

  • Quando um elemento <uses-feature> para o recurso android.hardware.type.automotive está presente no manifesto:
<application ...>
  ...
  <uses-feature android:name="android.hardware.type.automotive" ...>
  ...
</application>
  • Se houver algum elemento de manifesto <activity> que contenha o seguinte elemento <meta-data>:
<meta-data android:name="distractionOptimized" android:value="true">

Se alguma delas se aplica ao seu app, mas você prefere que as atividades sejam executadas no modo de compatibilidade de exibição, adicione o seguinte elemento <meta-data> ao manifesto do app:

<application ...>
  ...
  <meta-data android:name="android.software.car.display_compatibility" android:value="true"/>
  ...
</application>

Testar o app no modo de compatibilidade

Para testar seu app no modo de compatibilidade, use as imagens genéricas do sistema com o modo de compatibilidade.

Determinar a compatibilidade do dispositivo

Os dispositivos que oferecem suporte ao modo de compatibilidade do Android Automotive OS precisam declarar o recurso do sistema android.software.car.display_compatibility. Para descobrir quais dispositivos oferecem suporte a esse recurso, use o Catálogo de dispositivos do Play Console.