Proposez votre application sur les véhicules équipés d'Android Auto ou d'Android Automotive OS. Optez pour une architecture d'application qui fonctionne dans les deux cas afin que chaque utilisateur puisse profiter de votre application.
Qu'est-ce qu'Android for Cars ?
Une application multimédia pour voitures peut permettre aux utilisateurs de connecter facilement leur vie numérique à leur voiture. En proposant les mêmes applications pour téléphone sur les voitures, vous créez une meilleure expérience utilisateur. Pour ce faire, vous pouvez vous intégrer à Android Auto ou à Android Automotive OS.
Les applications Android pour voitures doivent avant tout éviter les distractions du conducteur. Vous pouvez minimiser les distractions en suivant les bonnes pratiques, telles que l'utilisation de commandes vocales et une conception visuelle très pratique. De cette façon, votre application multimédia peut afficher des informations pertinentes pour le conducteur au moment opportun et utiliser des modèles prévisibles pour les tâches courantes.
Android Auto
Android Auto offre une expérience d'application automobile optimisée aux utilisateurs disposant d'un téléphone Android avec l'application Android Auto et d'un véhicule ou système stéréo compatible. Il peut utiliser votre application directement sur l'écran de sa voiture en connectant son téléphone. Pour permettre à Android Auto de se connecter à votre application pour téléphone, créez les services utilisés par Android Auto pour présenter une interface optimisée au conducteur.
Android Automotive OS
Android Automotive OS est un système d'infoloisirs basé sur Android et intégré aux véhicules. Ce système est un appareil Android autonome, optimisé pour la conduite. Avec Android Automotive OS, les utilisateurs installent votre application directement sur la voiture au lieu de leur téléphone.
Catégories d'applications compatibles
Les applications multimédias permettent aux utilisateurs de parcourir et d'écouter de la musique, la radio, des livres audio et d'autres contenus audio dans la voiture. Pour en savoir plus, consultez la section Créer des applications de lecture audio pour les voitures. Pour en savoir plus, consultez Créer des applications multimédias pour voitures.
Les applications multimédias sont créées à l'aide de MediaLibraryService
et de MediaSession
.
Sur Android Automotive OS, vous pouvez également créer des écrans de connexion et de paramètres (à utiliser lorsque la voiture est à l'arrêt) à l'aide de Views ou de Compose.
Les applications vidéo permettent aux utilisateurs de regarder des vidéos en streaming lorsque la voiture est à l'arrêt. Leur principale fonction consiste à diffuser des vidéos en streaming. Ces applications sont créées à l'aide de vues ou de Compose. Pour en savoir plus, consultez la page Créer des applications de lecture vidéo pour Android Automotive OS. Pour en savoir plus, consultez Créer des applications vidéo pour Android Automotive OS.
Créer des applications de lecture audio pour voitures
Ce guide suppose que vous disposez déjà d'une application de lecture multimédia de base. Si ce n'est pas le cas, consultez Créer une application de lecteur multimédia de base pour commencer.
Ce guide vous indique ce que vous devez faire, y compris des liens vers d'autres ressources avec des conseils spécifiques.
Composants de lecture
Media3 propose plusieurs composants clés pour les cas d'utilisation de la lecture. Les classes qui composent ces composants vous sont familières si vous avez déjà travaillé avec les anciennes bibliothèques multimédias Android.
Le schéma suivant montre comment ces composants s'agencent dans une application typique.
Pour en savoir plus, consultez la section Composants de lecture.
Implémenter un MediaLibraryService
et un MediaLibrarySession
Un MediaLibraryService
fournit une API standardisée pour diffuser et autoriser l'accès à votre bibliothèque multimédia.
Cela est nécessaire lorsque vous ajoutez la prise en charge d'Android Auto ou d'Android Automotive OS à votre application multimédia, car ces plates-formes fournissent leur propre UI adaptée aux conducteurs pour votre bibliothèque multimédia. Pour en savoir plus sur l'implémentation et l'utilisation d'un MediaLibraryService
, consultez la section Diffuser du contenu avec MediaLibraryService.
Pour les commandes de lecture, utilisez une session multimédia. L'API MediaSession
offre un moyen universel d'interagir avec un lecteur audio ou vidéo. La bibliothèque Jetpack Media3 inclut MediaLibrarySession
, qui étend MediaSession
pour ajouter des API de navigation de contenu.
La connexion d'une session multimédia à un lecteur permet à une application d'annoncer la lecture de contenus multimédias en externe et de recevoir des commandes de lecture provenant de sources externes telles qu'Android Auto, Android Automotive OS ou l'Assistant Google. Pour en savoir plus, consultez Contrôler et annoncer la lecture avec MediaSession et Utiliser une MediaLibrarySession.
Au minimum, votre session multimédia doit déclarer la prise en charge des commandes de lecteur suivantes:
Le guide Activer les commandes de lecture décrit comment personnaliser les commandes de lecture dans les voitures.
Lorsque Android Auto ou Android Automotive OS se connectent à votre application, ils demandent à afficher une bibliothèque de contenus, ce qui déclenche la méthode de rappel onGetLibraryRoot()
. Vous pouvez rapidement renvoyer un élément multimédia racine pour autoriser l'accès à votre bibliothèque. La méthode de rappel onGetChildren()
est appelée lorsque Android Auto ou Android Automotive OS tentent de parcourir des niveaux plus profonds de votre bibliothèque de contenus.
Ces plates-formes appliquent des limites supplémentaires à la structure de votre bibliothèque de contenus. Pour en savoir plus sur la personnalisation de l'affichage de votre bibliothèque de contenus, consultez le guide Créer votre service de navigateur multimédia.
Déclarer la prise en charge d'Android Auto
Utilisez l'entrée du fichier manifeste suivante pour déclarer que votre application est compatible avec Android Auto :
<application>
...
<meta-data android:name="com.google.android.gms.car.application"
android:resource="@xml/automotive_app_desc"/>
...
</application>
Cette entrée du fichier manifeste fait référence à un fichier XML qui déclare les fonctionnalités automobiles compatibles avec votre application. Pour indiquer que vous disposez d'une application multimédia, ajoutez un fichier XML nommé automotive_app_desc.xml
au répertoire res/xml/
de votre projet. Ce fichier doit inclure le contenu suivant :
<automotiveApp>
<uses name="media"/>
</automotiveApp>
Déclarer la prise en charge d'Android Automotive OS
Vous devez créer un module automobile, car toute la logique de votre application ne peut pas être partagée avec une application automobile. Certains composants d'Android Automotive OS, comme le fichier manifeste, ont des exigences spécifiques à la plate-forme. Créez un module capable de séparer le code de ces composants des autres codes de votre projet, comme celui utilisé pour votre application mobile.
Pour ajouter un module automobile à votre projet, procédez comme suit :
- Dans Android Studio, cliquez sur File > New > New Module (Fichier > Nouveau > Nouveau module).
- Sélectionnez Automotive Module (Module automobile), puis cliquez sur Next (Suivant).
- Indiquez un nom d'application/de bibliothèque dans Application/Library name. Il s'agit du nom que les utilisateurs voient pour votre application sur Android Automotive OS.
- Indiquez un nom de module dans Module name.
- Adaptez le nom du package dans Package name pour qu'il corresponde à votre application.
Sélectionnez API 28: Android 9.0 (Pie) pour Minimum SDK (SDK minimal), puis cliquez sur Next (Suivant).
Toutes les voitures compatibles avec Android Automotive OS s'exécutent sur Android 9 (niveau d'API 28) ou version ultérieure. La sélection de cette valeur cible donc toutes les voitures compatibles.
Sélectionnez No Activity (Aucune activité), puis cliquez sur Finish (Terminer).
Après avoir créé votre module sur Android Studio, ouvrez AndroidManifest.xml
dans votre nouveau module automobile :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.media">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme" />
<uses-feature
android:name="android.hardware.type.automotive"
android:required="true" />
</manifest>
L'élément application
contient des informations sur l'application standard, ainsi qu'un élément uses-feature
qui déclare la prise en charge d'Android Automotive OS. Notez qu'aucune activité n'a été déclarée dans le fichier manifeste.
Si vous configurez des activités de paramétrage ou de connexion, ajoutez-les ici. Ces activités sont déclenchées par le système à l'aide d'intents explicites. Il s'agit des seules activités que vous déclarez dans le fichier manifeste pour votre application Android Automotive OS.
Une fois les activités de paramétrage ou de connexion ajoutées, terminez votre fichier manifeste en définissant l'attribut android:appCategory="audio"
dans l'élément application
et en ajoutant les éléments uses-feature
suivants :
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.media"> <application android:allowBackup="true" android:appCategory="audio" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" /> <uses-feature android:name="android.hardware.type.automotive" android:required="true" /> <uses-feature android:name="android.hardware.wifi" android:required="false" /> <uses-feature android:name="android.hardware.screen.portrait" android:required="false" /> <uses-feature android:name="android.hardware.screen.landscape" android:required="false" /> </manifest>
Si vous les définissez explicitement sur required="false"
, vous vous assurez que votre application n'entre pas en conflit avec les fonctionnalités matérielles disponibles sur les appareils Automotive OS.
Utilisez l'entrée de fichier manifeste suivante pour déclarer que votre application est compatible avec Android Automotive OS:
<application>
...
<meta-data android:name="com.android.automotive"
android:resource="@xml/automotive_app_desc"/>
...
</application>
Cette entrée du fichier manifeste fait référence à un fichier XML qui déclare les fonctionnalités automobiles prises en charge par votre application.
Pour indiquer que vous disposez d'une application multimédia, ajoutez un fichier XML nommé automotive_app_desc.xml
au répertoire res/xml/
de votre projet. Incluez le contenu suivant dans ce fichier:
<automotiveApp>
<uses name="media"/>
</automotiveApp>
Filtres d'intent
Android Automotive OS utilise des intents explicites pour déclencher des activités dans votre application multimédia. N'incluez aucune activité avec des filtres d'intent CATEGORY_LAUNCHER
ou ACTION_MAIN
dans le fichier manifeste.
Les activités telles que celle illustrée dans l'exemple suivant ciblent généralement un téléphone ou un autre appareil mobile. Déclarez ces activités dans le module qui compile l'application pour téléphone, et non dans celui qui compile votre application Android Automotive OS.
<activity android:name=".MyActivity">
<intent-filter>
<!-- You can't use either of these intents for Android Automotive OS -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!--
In their place, you can include other intent filters for any activities
that your app needs for Android Automotive OS, such as settings or
sign-in activities.
-->
</intent-filter>
</activity>
Étapes suivantes
Maintenant que vous avez une application pour Android Auto et Android Automotive OS, vous pouvez prendre des mesures supplémentaires pour l'optimiser afin qu'elle soit plus sûre à utiliser pendant la conduite. Pour obtenir d'autres recommandations afin de garantir une expérience utilisateur sûre et pratique, consultez les guides techniques sur les actions vocales, les mesures de protection contre les distractions et la gestion des erreurs.
Créer des applications de lecture vidéo pour Android Automotive OS
Étant donné que les applications vidéo sont catégorisées séparément des applications multimédias dans les voitures, vous devez connaître certaines exigences spécifiques pour les applications vidéo, comme décrit dans les sections Créer des applications à utiliser à l'arrêt pour Android Automotive OS et Créer des applications vidéo pour Android Automotive OS. Vous devez suivre les instructions ci-dessous.
Marquer votre application comme une application vidéo
Pour indiquer que votre application est compatible avec les vidéos, ajoutez un fichier XML nommé automotive_app_desc.xml
au répertoire res/xml/ de votre projet. Dans ce fichier, incluez le contenu suivant:
<automotiveApp>
<uses name="video"/>
</automotiveApp>
Ensuite, dans l'élément application
de votre fichier manifeste, ajoutez l'élément meta-data
suivant qui mentionne le fichier XML:
<meta-data android:name="com.android.automotive"
android:resource="@xml/automotive_app_desc"/>