Gemini verwendet 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 integrieren, indem Sie die auf dieser Seite beschriebenen Intent-Filter im Manifest Ihrer App deklarieren.
Weitere Informationen zu IntentsIntent
Die Gemini-Navigations-App-Klasse Intent unterstützt die folgenden Intents:
- Navigationsintent
- Suchabsicht
- Intention für benutzerdefinierte Aktionen
Abbildung 1: Intent-Datenfluss
Parameter in Intent-Daten
Intent-Daten folgen einem URI-Format mit Parametern, die auf dem übergebenen Intent basieren. Einige Parameter sind immer in den Daten enthalten. Das bedeutet, dass sie immer einen expliziten Wert haben. Für optionale Parameter 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 Offline-Varianten verfügbar.
Sie können sie unterscheiden, indem Sie ihrem Schema .offline anhängen.
Der Navigations-Intent verwendet beispielsweise das Schema geo.offline.
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 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 der Navigations-App:
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 weiß, 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 vom Nutzer angefragten Koordinaten.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.
Intent
Definiert die Nutzerintention. 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: Der Zwischenstopp wird als nächstes Ziel zusammen mit den vorherigen Zielen hinzugefügt. Verwenden Sie diese Option für Anfragen wie Füge einen Zwischenstopp bei x hinzu.directions: Hier werden Routenanweisungen angezeigt, ohne dass die Navigation gestartet wird. Verwenden Sie diese Option 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 in der Anfrage vom Nutzer 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 Klasse Intent 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 weiß, 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 Suchintention verfügbar sein.
Standortabfrage
Eine Standortanfrage ist der Standort, nach dem der Nutzer während der Fahrt sucht. Diese Anfrage kann ungenau sein oder sich auf eine aktive Navigationsroute beziehen.
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.
Intention 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 weiß, 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 an, dass die Aktion nicht unterstützt wird.
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 als die Aktion übergeben kann, 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
|
Zeige die voraussichtliche Ankunftszeit am Ziel an. | ||
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 an. | ||
query_next_turn
|
Zeige an, 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
|
Geschätzte Ankunftszeit bis zum nächsten Abzweig anzeigen | ||
unmute
|
Sprachführung aktivieren |
Navigationsstatus abrufen
Damit Gemini dem Nutzer genaue Echtzeitinformationen zum Status seiner Fahrt liefern kann, wenn er danach fragt, muss Ihre App Navigationsmetadaten über den NavigationManager-Autodienst bereitstellen. Eine Anleitung zur Implementierung finden Sie unter Navigationsmetadaten übermitteln.