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.
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 recursoandroid.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.