Créer une application de point d'intérêt (ou application POI)

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 au modèle de carte

Les applications peuvent accéder au PlaceListMapTemplate, spécialement conçu pour présenter une liste de POI avec une carte affichée par l'hôte.

Pour accéder à ce modèle, votre application doit déclarer l'autorisation androidx.car.app.MAP_TEMPLATES dans son fichier AndroidManifest.xml :

<uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>

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.