Gemini und Google Assistant verwenden drei verschiedene Intent-Formate, die von Ihrer Navigations-App unterstützt werden können.
Sie können die Interoperabilität erreichen und Ihre App und Gemini oder Google Assistant integrieren, indem Sie die auf dieser Seite beschriebenen Intent-Filter im Manifest Ihrer App deklarieren. Weitere Informationen zu IntentsIntent
Die Navigations-App für Gemini oder Google Assistant der Klasse Intent unterstützt die folgenden Intents:
- Navigationsintent
- Suchabsicht
- Intent für benutzerdefinierte Aktionen
Abbildung 1. Intent-Datenfluss.
Parameter in Intent-Daten
Intention-Daten folgen einem URI-Format mit Parametern, die auf der übergebenen Intention basieren. Einige Parameter werden immer in den Daten angegeben. Das bedeutet, dass sie immer einen expliziten Wert haben. Bei optionalen Parametern ist jedoch nicht immer ein Wert in den Daten festgelegt. Weitere Informationen finden Sie unter Datentest.
Offline-Intents
Für alle auf dieser Seite aufgeführten Intents sind Offlinevarianten verfügbar.
Sie können sie unterscheiden, indem Sie dem Schema .offline anhängen.
Für den Navigations-Intent wird beispielsweise das Schema geo.offline verwendet.
Diese Intent-Filter im Manifest geben an, dass die App diese Aktionen offline unterstützen kann.
Navigationsintent
Verwenden Sie einen Navigations-Intent, um die Anfrage eines Nutzers zu erfüllen, zu einem bestimmten Ziel zu navigieren. Das Ziel kann entweder ein einzelner Ort (Adresse) oder mehrere Orte (z. B. Cafés und Tankstellen) sein. Intentionen-Daten folgen einem URI-Format, das für jede Intention angegeben ist.
Intent-Format
Für die Klasse Intent gilt das folgende Format für die Intent für Navigations-Apps:
Kategorie: android.intent.category.DEFAULT
Aktion:
- Android Auto und Android Automotive OS:
androidx.car.app.action.NAVIGATE - Andere Formfaktoren:
android.intent.action.NAVIGATE
Schema:geo
Beispiele:
geo:0,0?q=Googleplexgeo:0,0?q=1600+Amphitheatre+parkway&mode=b&intent=add_a_stopgeo:0,0?q=coffee+shop&mode=w&intent=navigationgeo:1.1,2.2?q=Starbucks+on+Main+Street&mode=w&intent=navigation
Vorgeschlagenes App-Verhalten:Die Navigation zum angegebenen Ort wird gestartet oder der Nutzer wird aufgefordert, aus mehreren Optionen auszuwählen.
Manifest-Intent-Filter
Deklarieren Sie das folgende Intent-Format in der Manifestdatei Ihrer App, damit Gemini oder Google Assistant wissen, dass Ihre Navigations-App Navigations-Intents empfangen kann.
Alle Formfaktoren außer Android Auto und 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 und 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>
Angegebene Parameter
Die folgenden Parameter müssen in den bereitgestellten Intent-Daten der Navigations-App verfügbar sein.
Standortabfrage oder geografische Koordinaten
Jede Anfrage mit Navigationsabsicht enthält je nach Art der angeforderten Daten einen oder beide dieser Parameter:
Standortabfrage
Bezieht sich auf den Ort, zu dem der Nutzer navigieren möchte. Verwenden Sie diese Daten, um das Ziel des Nutzers zu ermitteln.
Parameterschlüssel:
q
Wert:Das vom Nutzer angefragte Ziel.Beispiel:
geo:0,0?q=Golden+Gate+Bridge
Interpretation:Der Nutzer möchte zur Golden Gate Bridge navigieren.Geografische Koordinaten (Breiten- und Längengrad)
Bezieht sich auf bestimmte Koordinaten, die der Nutzer für die Navigation verwendet.
Parameterschlüssel:
geo:lat,long
Wert:Die abgefragten Koordinaten des Nutzers.Beispiel:
geo:1.1,2.2?mode=w&intent=navigation
Interpretation:Der Nutzer möchte zu den Koordinaten (1.1, 2.2) navigieren.
Optionale Parameter
Die optionalen Parameter, die in den Intent-Daten der Navigations-App angegeben werden, werden in diesem Abschnitt beschrieben.
Absicht
Definiert die Nutzerabsicht. Wenn dieser Parameter nicht festgelegt ist, wird die Standardabsicht des Nutzers als navigation betrachtet.
Parameterschlüssel:intent
Mögliche Werte:
navigation[Standardwert]: Ersetzt das Ziel und startet die Navigation. Verwenden Sie diese Funktion für Anfragen wie Navigiere zu x.add_a_stop: Fügt den Stopp als nächstes Ziel zusammen mit den vorherigen Zielen hinzu. Verwenden Sie diesen Parameter für Anfragen wie Füge einen Stopp bei x hinzu.directions: Zeigt die Routenführung an, ohne die Navigation zu starten. Verwenden Sie diesen Parameter für Anfragen wie Route nach X.
Beispiel:geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop
Interpretation:Der Nutzer möchte einen Stopp am Bellevue Square in Bellevue mit den aktuellen Koordinaten [47.6, -122.2] hinzufügen.
Vermeiden
Definiert, was bei der Navigation vermieden werden soll.
Parameterschlüssel:avoid
Mögliche Werte:
f– Fährenh– Bundesstraßent– Mautgebühren
Beispiel:geo:0,0?q=googleplex&avoid=tf
Interpretation:Der Nutzer möchte zum Googleplex navigieren und dabei Mautstraßen und Fähren vermeiden.
Mobilitätsform
Der Reisemodus gibt die vom Nutzer in der Anfrage angegebene Transportmethode an.
Parameterschlüssel:mode
Mögliche Werte:
b– Fahrradd– Fahrtx– Taxil– Motorradr– Transitw– zu Fuß
Beispiel:geo:0,0?q=Googleplex&mode=r
Interpretation:Der Nutzer möchte mit öffentlichen Verkehrsmitteln zum Googleplex fahren.
Eintrag
Wird zum Protokollieren der Quelle des Eintrags verwendet.
Mögliche Werte:assistant
Beispiel: geo:47.61594547836694,-122.20373173098756?entry=assistant
Suchabsicht
Verwenden Sie eine Suchabsicht, um nach einer Anfrage zu suchen und während der Fahrt mehrere Ergebnisse entlang der Route anzeigen zu lassen.
Intent-Format
Die Intent-Klasse verwendet das folgende Format für Such-Intents:
Kategorie: android.intent.category.DEFAULT
Aktion:android.intent.action.VIEW
Schema:geo
Beispiel: geo:0,0?q=restaurants+nearby
Vorgeschlagenes App-Verhalten:Öffnen Sie eine Liste von Orten, die der Nutzeranfrage entsprechen.
Manifest-Intent-Filter
Deklarieren Sie das folgende Intent-Format in der Manifestdatei Ihrer App, damit Gemini oder Google Assistant wissen, dass Ihre Navigations-App Such-Intents empfangen kann:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
Angegebene Parameter
Die folgenden Parameter müssen in den bereitgestellten Daten zur Suchabsicht verfügbar sein.
Standortabfrage
Eine Standortanfrage ist der Standort, nach dem der Nutzer während der Fahrt sucht. Diese Anfrage kann ungenau sein oder entlang einer aktiven Navigationsroute erfolgen.
Parameterschlüssel:q
Wert:Der Suchbegriff des Nutzers, der ein Ortstyp wie Café oder Universität sein kann, aber auch Quantifizierer wie – in meiner Nähe oder – mit der besten Bewertung enthalten kann.
Beispiel: geo:0,0?q=restaurants+nearby
Interpretation: Der Nutzer möchte nach Restaurants in der Nähe suchen.
Intent für benutzerdefinierte Aktionen
Verwenden Sie eine benutzerdefinierte Intention für benutzerdefinierte Aktionen wie das Melden von Unfällen und das Beenden der Navigation. Der Hauptaktionstyp wird durch den Abfrageparameter act definiert.
Je nach Aktionstyp können Sie zusätzliche Parameter festlegen.
Intent-Format
Die Klasse Intent verwendet das folgende Format für benutzerdefinierte Intent-Aktionen:
Kategorie: android.intent.category.DEFAULT
Aktion:android.intent.action.VIEW
Schema:geo.action
Beispiel: geo.action:?act=report&accident_type=major
Manifest-Intent-Filter
Deklarieren Sie das folgende Intent-Format in der Manifestdatei Ihrer App, damit Gemini oder Google Assistant wissen, dass Ihre Navigations-App benutzerdefinierte Aktions-Intents empfangen kann.
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo.action" />
</intent-filter>
Angegebene Parameter
Die folgenden Parameter müssen in den bereitgestellten Intent-Daten für benutzerdefinierte Aktionen verfügbar sein:
Aktionstyp
Sie definiert den Typ der benutzerdefinierten Aktion, die ein Nutzer ausführen möchte.
Parameterschlüssel:act
Beispiele:
geo.action:?act=report_crash&accident_type=major
Interpretation:Der Nutzer möchte einen schweren Unfall melden.geo.action:?act=mute
Interpretation:Der Nutzer möchte die Sprachführung stummschalten.geo.action:?act=exit_navigation
Interpretation:Der Nutzer möchte die aktuelle Navigation beenden.
Vorgeschlagenes App-Verhalten:Führen Sie die angeforderte Aktion in der Navigations-App aus oder zeigen Sie eine Meldung für eine nicht unterstützte Aktion an.
Die folgende Abbildung zeigt ein Beispiel für Schlüssel/Wert-Paare in der Antwortanfrage:
Abbildung 2: Datenfluss für benutzerdefinierte Aktionen.
Schlüssel/Wert-Paar:
"act": "report_crash"
"road_direction": other_side"
Jede benutzerdefinierte Aktion hat immer den Parameter act als Schlüssel. Im oben genannten Beispielcode können einige Aktionen zusätzliche Schlüssel/Wert-Paare haben.
act=report_crash unterstützt beispielsweise die zusätzlichen Schlüssel accident_type und road_direction.
Der Schlüssel accident_type kann zwei Werte unterstützen: minor und major.
Mögliche Werte
In der Tabelle sind mögliche Werte aufgeführt, die Gemini oder Google Assistant als Aktion übergeben können, die der Nutzer in der Navigations-App ausführen möchte.
| Wert | Beschreibung | Optionale Parameterschlüssel | Optionale Parameterwerte |
|---|---|---|---|
allow_ferries
|
Ändern Sie die Routeneinstellung, um Fähren zuzulassen. | ||
allow_highways
|
Ändern Sie die Routeneinstellung, um Autobahnen zuzulassen. | ||
allow_tolls
|
Ändern Sie die Routeneinstellung, um Mautstraßen zuzulassen. | ||
avoid_ferries
|
Ändern Sie die Routeneinstellung, um Fähren zu vermeiden. | ||
avoid_highways
|
Ändern Sie die Routeneinstellung, um Autobahnen zu vermeiden. | ||
avoid_tolls
|
Ändern Sie die Routeneinstellung, um Mautstraßen zu vermeiden. | ||
distance_to_destination
|
Entfernung zum Ziel anzeigen | ||
distance_to_next_turn
|
Entfernung zum nächsten Abbiegepunkt anzeigen | ||
eta
|
Voraussichtliche Ankunftszeit am Ziel anzeigen. | ||
exit_navigation
|
Navigation beenden oder abbrechen | ||
follow_mode
|
In den Follow-Modus wechseln | ||
go_back
|
Zur vorherigen Kartenaktion zurückkehren | ||
hide_satellite
|
Ändern Sie die Karteneinstellung, um Satelliteninformationen auszublenden. | ||
hide_traffic
|
Ändern Sie die Karteneinstellung, um Verkehrsinformationen auszublenden. | ||
mute
|
Schalte die Sprachführung aus. | ||
query_current_road
|
Anzeigen der aktuellen Straße, auf der sich der Nutzer befindet. | ||
query_destination
|
Zeigen Sie das Ziel. | ||
query_next_turn
|
Zeige, wo ich als Nächstes abbiegen muss. | ||
report_crash
|
Abstürze melden. | accident_type
|
minor
|
major
|
|||
road_direction
|
this_side
|
||
other_side
|
|||
report_hazard
|
Gefahren melden. | 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
|
Polizeieinsätze melden. | road_direction
|
this_side
|
other_side
|
|||
report_road_closure
|
Straßensperrungen melden. | road_closure_type
|
partial
|
full
|
|||
report_traffic
|
Stau melden. | traffic_type
|
moderate
|
heavy
|
|||
standstill
|
|||
road_direction
|
this_side
|
||
other_side
|
|||
route_overview
|
Routenübersicht anzeigen | ||
show_alternates
|
Zeige alternative Routen an. | ||
show_directions_list
|
Detaillierte Routenführung anzeigen | ||
show_satellite
|
Satelliteninformationen auf der Karte anzeigen | ||
show_traffic
|
Verkehrslage auf der Karte anzeigen | ||
time_to_destination
|
Voraussichtliche Ankunftszeit am Ziel anzeigen | ||
time_to_next_turn
|
Voraussichtliche Ankunftszeit bis zur nächsten Abzweigung anzeigen. | ||
unmute
|
Sprachführung aktivieren |
Navigationsstatus abrufen (nur Gemini)
Damit Gemini dem Nutzer genaue Echtzeitinformationen zum Status seiner Fahrt geben kann, wenn er danach fragt, muss Ihre App Navigationsmetadaten über den NavigationManager-Autodienst bereitstellen. Ihre App muss insbesondere die Funktionen und die Nutzereinwilligung zur Weitergabe der Informationen an Gemini über NavigationManager.setVoiceAssistantCapabilities bereitstellen.
Eine Anleitung zur Implementierung finden Sie unter Navigationsmetadaten übermitteln.