Implémenter des intents d'application de navigation

Gemini utilise trois formats d'intent différents que votre application de navigation peut prendre en charge. Pour assurer l'interopérabilité et intégrer votre application à Gemini, vous pouvez déclarer les filtres d'intent détaillés sur cette page dans le fichier manifeste de votre application. Pour en savoir plus sur les intentions, consultez Intent.

La classe d'application de navigation Gemini Intent est compatible avec les intents suivants :

  • Intent de navigation
  • Intention de recherche
  • Intent d'action personnalisée

Flux de données d'intention

Figure 1. Flux de données d'intention.

Paramètres dans les données d'intent

Les données d'intent suivent un format URI contenant des paramètres basés sur l'intent que vous transmettez. Certains paramètres sont toujours fournis dans les données. Cela signifie que vous pouvez vous attendre à ce qu'elles aient toujours une valeur explicite. Toutefois, les paramètres facultatifs n'ont pas toujours de valeur définie dans les données. Pour en savoir plus, consultez Test de données.

Intents hors connexion

Toutes les intentions listées sur cette page ont des variantes hors connexion disponibles. Vous pouvez les distinguer en ajoutant .offline à leur schéma. Par exemple, l'intent de navigation utilise le schéma geo.offline. Ces filtres d'intent dans le fichier manifeste indiquent que l'application est capable de prendre en charge ces actions hors connexion.

Utilisez un intent de navigation pour répondre à la demande d'un utilisateur de se rendre à une destination spécifique. Cette destination peut être un seul lieu (adresse) ou plusieurs lieux (par exemple, des cafés et des stations-service). Les données d'intent suivent un format URI spécifié pour chaque intent.

Format de l'intention

La classe Intent utilise le format suivant pour l'intent d'application de navigation :

Catégorie : android.intent.category.DEFAULT

Action :

  • Android Auto et Android Automotive OS : androidx.car.app.action.NAVIGATE
  • Autres facteurs de forme : android.intent.action.NAVIGATE

Schéma : geo

Exemples :

  • geo:0,0?q=Googleplex
  • geo:0,0?q=1600+Amphitheatre+parkway&mode=b&intent=add_a_stop
  • geo:0,0?q=coffee+shop&mode=w&intent=navigation
  • geo:1.1,2.2?q=Starbucks+on+Main+Street&mode=w&intent=navigation

Comportement suggéré de l'application : la navigation vers le lieu spécifié démarre ou l'utilisateur est invité à choisir parmi plusieurs options.

Filtres d'intent du fichier manifeste

Déclarez le format d'intent suivant dans le fichier manifeste de votre application pour que Gemini sache que votre application de navigation peut recevoir des intents de navigation.

Tous les facteurs de forme, à l'exception d'Android Auto et d'Android Automotive OS :

<intent-filter>
  <action android:name="android.intent.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

Android Auto et Android Automotive OS :

<intent-filter>
  <action android:name="androidx.car.app.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

Paramètres fournis

Les paramètres suivants doivent être disponibles dans les données d'intent de l'application de navigation fournies.

Requête de localisation ou coordonnées géographiques

Chaque requête d'intention de navigation contient un ou plusieurs de ces paramètres, selon le type de données demandé :

  • Requête de localisation

    Fait référence au lieu vers lequel l'utilisateur essaie de se rendre. Utilisez ces données pour résoudre la destination de l'utilisateur.

    Clé du paramètre : q
    Valeur : destination recherchée par l'utilisateur.

    Exemple : geo:0,0?q=Golden+Gate+Bridge
    Interprétation : L'utilisateur souhaite accéder au Golden Gate Bridge.

  • Coordonnées géographiques (latitude et longitude)

    Fait référence aux coordonnées spécifiques utilisées par l'utilisateur pour la navigation.

    Clé du paramètre : geo:lat,long
    Valeur : coordonnées demandées par l'utilisateur.

    Exemple : geo:1.1,2.2?mode=w&intent=navigation
    Interprétation : l'utilisateur souhaite accéder aux coordonnées (1.1, 2.2).

Paramètres facultatifs

Les paramètres facultatifs fournis dans les données d'intent de l'application de navigation sont décrits dans cette section.

Intent

Définit l'intention de l'utilisateur. Si ce paramètre n'est pas défini, l'intention de l'utilisateur par défaut est considérée comme navigation.

Clé du paramètre : intent
Valeurs possibles :

  • navigation [valeur par défaut] : remplace la destination et lance la navigation. Utilisez-le pour les requêtes telles que navigue vers x.
  • add_a_stop : ajoute l'arrêt comme prochaine destination, en plus des destinations précédentes. Utilisez cette intention pour les requêtes telles que ajoute un arrêt à x.
  • directions : affiche l'itinéraire sans lancer la navigation. Utilisez-le pour des requêtes telles que itinéraire vers x.

Exemple : geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop Interprétation : l'utilisateur souhaite ajouter un arrêt à Bellevue Square, Bellevue, avec les coordonnées actuelles [47.6, -122.2].

À éviter

Définit les éléments à éviter lors de la navigation.

Clé du paramètre : avoid
Valeurs possibles :

  • f – Ferries
  • h – Voies rapides
  • t : péages

Exemple : geo:0,0?q=googleplex&avoid=tf
Interprétation : l'utilisateur souhaite se rendre au Googleplex en évitant les péages et les ferries.

Mode transport

Le mode de déplacement représente le mode de transport spécifié dans la requête par l'utilisateur.

Clé du paramètre : mode
Valeurs possibles :

  • b – vélo
  • d – en voiture
  • x - taxi
  • l : deux-roues
  • r – Transports en commun
  • w – à pied

Exemple : geo:0,0?q=Googleplex&mode=r
Interprétation : L'utilisateur souhaite se rendre au Googleplex en transports en commun.

Entrée

Utilisé pour enregistrer la source d'entrée.

Valeurs possibles : assistant

Exemple : geo:47.61594547836694,-122.20373173098756?entry=assistant

Intention de recherche

Utilisez une intention de recherche pour rechercher une requête et afficher plusieurs résultats le long de l'itinéraire pendant que vous conduisez.

Format de l'intention

La classe Intent utilise le format suivant pour les intents de recherche :

Catégorie : android.intent.category.DEFAULT

Action : android.intent.action.VIEW

Schéma : geo

Exemple : geo:0,0?q=restaurants+nearby

Comportement suggéré de l'application : ouvrir une liste de lieux correspondant à la requête de l'utilisateur.

Filtres d'intent du fichier manifeste

Déclarez le format d'intent suivant dans le fichier manifeste de votre application pour que Gemini sache que votre application de navigation peut recevoir des intents de recherche :

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

Paramètres fournis

Les paramètres suivants doivent être disponibles dans les données sur l'intention de recherche fournies.

Requête de localisation

Une requête de localisation correspond à la position que l'utilisateur recherche en conduisant. Cette requête peut être imprécise ou le long d'un itinéraire de navigation actif.

Clé du paramètre : q
Valeur : terme de recherche de l'utilisateur, qui peut être un type de lieu tel que café ou université, mais qui peut également comporter des quantificateurs tels que -près de moi ou -avec la meilleure note.

Exemple : geo:0,0?q=restaurants+nearby
Interprétation : l'utilisateur souhaite rechercher des restaurants à proximité.

Intent d'action personnalisée

Utilisez une intention personnalisée pour les actions personnalisées, comme signaler des accidents et mettre fin à la navigation. Le type d'action principal est défini par le paramètre de requête act. Vous pouvez définir des paramètres supplémentaires en fonction du type d'action.

Format de l'intention

La classe Intent utilise le format suivant pour l'intent d'action personnalisée :

Catégorie : android.intent.category.DEFAULT

Action : android.intent.action.VIEW

Schéma : geo.action

Exemple : geo.action:?act=report&accident_type=major

Filtres d'intent du fichier manifeste

Déclarez le format d'intent suivant dans le fichier manifeste de votre application pour indiquer à Gemini que votre application de navigation peut recevoir des intents d'actions personnalisées.

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo.action" />
</intent-filter>

Paramètres fournis

Les paramètres suivants doivent être disponibles dans les données d'intent d'action personnalisée fournies :

Type d'action

Il définit le type d'action personnalisée qu'un utilisateur souhaite effectuer.

Clé du paramètre : act

Exemples :

  • geo.action:?act=report_crash&accident_type=major
    Interprétation : L'utilisateur souhaite signaler un accident majeur.

  • geo.action:?act=mute
    Interprétation : l'utilisateur souhaite désactiver les instructions vocales.

  • geo.action:?act=exit_navigation
    Interprétation : l'utilisateur souhaite quitter la navigation en cours.

Comportement suggéré de l'application : exécutez l'action demandée dans l'application de navigation ou affichez un message indiquant que l'action n'est pas prise en charge.

La figure suivante illustre un exemple de paires clé-valeur dans la requête de réponse :

Flux de données d&#39;intent d&#39;action personnalisée

Figure 2. Flux de données d'intent d'action personnalisée.

Paire clé-valeur :

"act": "report_crash"
"road_direction": other_side"

Chaque action personnalisée comporte toujours un paramètre act comme clé. Dans l'exemple de code mentionné ci-dessus, certaines actions peuvent comporter des paires clé/valeur supplémentaires. Par exemple, act=report_crash est compatible avec les clés supplémentaires accident_type et road_direction.

La clé accident_type peut accepter deux valeurs : minor et major.

Valeurs possibles

Le tableau liste les valeurs possibles que Gemini peut transmettre en tant qu'action que l'utilisateur essaie d'effectuer dans l'application de navigation.

Valeur Description Clés de paramètre facultatives Valeurs de paramètre facultatives
allow_ferries Modifiez vos préférences d'itinéraire pour autoriser les ferries.
allow_highways Modifiez vos préférences d'itinéraire pour autoriser les autoroutes.
allow_tolls Modifiez la préférence d'itinéraire pour autoriser les péages.
avoid_ferries Modifiez vos préférences d'itinéraire pour éviter les ferries.
avoid_highways Modifiez vos préférences d'itinéraire pour éviter les autoroutes.
avoid_tolls Modifiez la préférence de route pour éviter les péages.
distance_to_destination Afficher la distance jusqu'à la destination
distance_to_next_turn Affiche la distance jusqu'au prochain virage.
eta Afficher l'heure d'arrivée prévue à la destination.
exit_navigation Quitter ou annuler la navigation.
follow_mode Passez à la vue "Suivre".
go_back Revenir à l'action précédente sur la carte
hide_satellite Modifiez le paramètre de la carte pour masquer les informations satellite.
hide_traffic Modifiez le paramètre de la carte pour masquer les informations sur le trafic.
mute Désactive le guidage vocal.
query_current_road Afficher la route sur laquelle se trouve actuellement l'utilisateur.
query_destination Indiquez la destination.
query_next_turn Affiche le prochain tour.
report_crash Signaler des accidents. accident_type minor
major
road_direction this_side
other_side
report_hazard Signaler des dangers. hazard_type animal
broken_traffic_light
construction
flooding
fog
hail
ice
missing_sign
object_on_road
pothole
roadkill
snow
vehicle
weather
road_direction this_side
other_side
location_on_road on_road
on_shoulder
report_police Signaler une intervention policière road_direction this_side
other_side
report_road_closure Signaler des routes fermées road_closure_type partial
full
report_traffic Signale un embouteillage. traffic_type moderate
heavy
standstill
road_direction this_side
other_side
route_overview Affiche un aperçu de l'itinéraire.
show_alternates Affiche d'autres itinéraires.
show_directions_list Affiche les instructions de navigation détaillées.
show_satellite Afficher les informations satellite sur la carte.
show_traffic Afficher le trafic sur la carte.
time_to_destination Afficher l'heure d'arrivée prévue à la destination
time_to_next_turn Afficher l'heure d'arrivée estimée au prochain carrefour
unmute Réactivez le guidage vocal.

Récupérer l'état de la navigation

Pour que Gemini puisse fournir des informations précises et en temps réel à l'utilisateur lorsqu'il demande l'état de son trajet, votre application doit fournir des métadonnées de navigation à l'aide du service automobile NavigationManager. Pour obtenir des conseils sur l'implémentation, consultez Communiquer les métadonnées de navigation.