Intents für Navigations-Apps implementieren

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

Datenfluss für Intentionen

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.

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=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

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ähren
  • h – Bundesstraßen
  • t – 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 – Fahrrad
  • d – Fahrt
  • x – Taxi
  • l – Motorrad
  • r – Transit
  • w – 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:

Datenfluss für benutzerdefinierte Aktionen

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.