Ce guide détaille les différentes fonctionnalités de la bibliothèque Car App que vous pouvez utiliser pour implémenter votre application de point d'intérêt (POI).
Déclarer la catégorie compatible dans votre fichier manifeste
Votre application doit déclarer la catégorie d'applications automobiles androidx.car.app.category.POI
dans le filtre d'intent de son CarAppService
.
L'exemple suivant montre comment déclarer la catégorie d'applications :
<application>
...
<service
...
android:name=".MyCarAppService"
android:exported="true">
<intent-filter>
<action android:name="androidx.car.app.CarAppService" />
<category android:name="androidx.car.app.category.POI"/>
</intent-filter>
</service>
...
<application>
Accéder aux modèles de carte
Les applications POI peuvent accéder à PlaceListMapTemplate
et MapWithContentTemplate
.
PlaceListMapTemplate
est spécialement conçu pour afficher une liste des
des POI à côté d'une carte affichée par l'hôte.
Le MapWithContentTemplate
peut être utilisé pour afficher des listes et d'autres types de
contenu à côté d'une carte affichée par votre application. Voir
Dessinez des cartes pour en savoir plus sur l'utilisation de
modèle.
Pour accéder à ces modèles, votre application doit déclarer le
Autorisation androidx.car.app.MAP_TEMPLATES
dans son fichier AndroidManifest.xml
:
<manifest ...>
...
<uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>
...
</manifest>
Actualiser le contenu du modèle PlaceListMapTemplate
Vous pouvez autoriser les conducteurs à actualiser le contenu d'un simple geste, tout en parcourant des listes de lieux créées avec PlaceListMapTemplate
.
Mettez en œuvre la méthode onContentRefreshRequested
de l'interface OnContentRefreshListener
et utilisez PlaceListMapTemplate.Builder.setOnContentRefreshListener
pour définir l'écouteur au niveau du modèle afin d'activer l'actualisation de la liste.
L'extrait de code suivant montre comment définir l'écouteur au niveau du modèle :
Kotlin
PlaceListMapTemplate.Builder() ... .setOnContentRefreshListener { // Execute any desired logic ... // Then call invalidate() so onGetTemplate() is called again invalidate() } .build()
Java
new PlaceListMapTemplate.Builder() ... .setOnContentRefreshListener(() -> { // Execute any desired logic ... // Then call invalidate() so onGetTemplate() is called again invalidate(); }) .build();
Le bouton d'actualisation ne s'affiche dans l'en-tête du PlaceListMapTemplate
que si l'écouteur a une valeur.
Lorsque l'utilisateur clique sur le bouton d'actualisation, la méthode onContentRefreshRequested
de votre implémentation de OnContentRefreshListener
est appelée. Dans onContentRefreshRequested
, appelez la méthode Screen.invalidate
. L'hôte rappelle ensuite la méthode Screen.onGetTemplate
de votre application pour récupérer le modèle avec le contenu actualisé. Pour plus d'informations, consultez la section Actualiser le contenu d'un modèle. Tant que le modèle suivant renvoyé par onGetTemplate
est du même type, il est considéré comme une actualisation et n'est pas comptabilisé dans le quota de modèles.
Intégrer l'Assistant Google à l'aide des actions dans les applications
Activez les commandes vocales pour une application POI à l'aide de l'Assistant pour permettre aux utilisateurs de rechercher des points d'intérêt en disant, par exemple, "Hey Google, trouve les bornes de recharge les plus proches sur l'appli XXX". Pour obtenir des instructions détaillées, consultez la section Actions dans les applications pour voitures.