Pour simplifier le processus de transfert d'applications mobiles vers les appareils Android Automotive OS, certaines voitures sont équipées d'un mode de compatibilité qui résout les problèmes courants rencontrés lors du transfert d'applications mobiles existantes vers les voitures.
Bien que ce mode de compatibilité soit utilisé par le programme Applications mobiles adaptées aux voitures, les applications qui ne font pas partie de ce programme peuvent également y être exécutées.
Comprendre le mode de compatibilité
Le mode de compatibilité Android Automotive OS est une fonctionnalité logicielle disponible sur certains véhicules pour améliorer l'expérience utilisateur des applications conçues pour les appareils mobiles lorsqu'elles sont exécutées sur Android Automotive OS.
Navigation vers l'arrière
Contrairement à d'autres facteurs de forme, les appareils Android Automotive OS ne sont pas tenus de disposer d'un bouton ou d'un geste "Retour" matériel ou logiciel. Le mode de compatibilité résout ce problème en exigeant une affordance de retour fournie par le système, telle qu'un bouton matériel, un bouton logiciel ou un geste. Cela signifie que les applications n'ont pas besoin de fournir leurs propres commandes de navigation vers l'arrière lorsqu'elles ciblent uniquement les appareils avec le mode Compatibilité.
Avec le mode de compatibilité
Sans le mode de compatibilité
Affichage de la zone de sécurité
Dans les voitures, les éléments logiciels et matériels tels que les barres système et les encoches d'écran peuvent invalider les hypothèses faites lors du développement d'applications principalement destinées aux appareils mobiles. Le mode Compatibilité résout ce problème en affichant les applications dans une zone sécurisée.
Scaling de la densité
Étant donné que la distance d'interaction dans les voitures est plus grande qu'avec d'autres appareils à grand écran, les cibles tactiles et les tailles de police sont souvent plus petites que celles recommandées lorsqu'elles sont utilisées dans une voiture. Le mode de compatibilité résout ce problème en permettant aux OEM de spécifier un facteur de scaling PPP utilisé lors du rendu des applications.
Cycle de vie d'une activité
Comme décrit dans Ajouter la prise en charge d'Android Automotive OS à votre application pour véhicule garé, l'OS bloque automatiquement les activités de votre application lorsque la voiture passe en mode Voiture afin d'éviter toute distraction pour le conducteur. Sur les appareils dotés du mode Compatibilité, l'UI de blocage de l'OEM ne doit pas être transparente. Votre application n'est donc plus visible et passe à l'état du cycle de vie Arrêté lorsqu'elle est bloquée.
Configurer le mode de compatibilité
Par défaut, les activités de votre application s'exécutent en mode de compatibilité lorsque l'appareil le prend en charge. Les activités ne sont pas exécutées en mode de compatibilité lorsqu'un élément <uses-feature> pour la fonctionnalité android.hardware.type.automotive est présent dans le fichier manifeste :
<manifest ...>
...
<uses-feature android:name="android.hardware.type.automotive" ...>
...
</manifest>
Si vous préférez que vos activités s'exécutent en mode de compatibilité d'affichage, indépendamment de l'élément <uses-feature> décrit précédemment, vous pouvez ajouter l'élément <meta-data> suivant dans le fichier manifeste de votre application :
<application ...>
...
<meta-data android:name="android.software.car.display_compatibility" android:value="true"/>
...
</application>
Tester votre application en mode compatibilité
Pour tester votre application en mode de compatibilité, vous pouvez utiliser les images système génériques avec le mode de compatibilité ou les images système Android Automotive OS sur la Pixel Tablet.
Déterminer la compatibilité de l'appareil
Les appareils compatibles avec le mode de compatibilité Android Automotive OS doivent déclarer la fonctionnalité système android.software.car.display_compatibility. Pour savoir quels appareils sont compatibles avec cette fonctionnalité, vous pouvez utiliser le catalogue d'appareils de la Play Console.