Intents für Navigations-Apps implementieren

Google Assistant verwendet drei verschiedene Intent-Formate, die von Ihrer Navigations-App unterstützt werden können. Sie können Interoperabilität erreichen und Ihre App mit Google Assistant integrieren, indem Sie die auf dieser Seite beschriebenen Intent-Filter im Manifest Ihrer App deklarieren. Weitere Informationen zu Intents finden Sie unter Intent.

Die Klasse Intent der Assistant-Navigations-App unterstützt die folgenden Intents:

  • Navigationsabsicht
  • Suchabsicht
  • Absicht für benutzerdefinierte Aktion

Intent-Datenfluss

Abbildung 1: Intent-Datenfluss

Parameter in Intent-Daten

Intent-Daten folgen einem URI-Format mit Parametern, die auf der übergebenen Absicht basieren. Einige Parameter sind immer in den Daten enthalten. Sie können also davon ausgehen, 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 Offlinevarianten verfügbar. Sie können sie unterscheiden, indem Sie dem Schema .offline anhängen. Für den Navigations-Intent wird beispielsweise das geo.offline-Schema verwendet. Diese Intent-Filter im Manifest geben an, ob die App diese Aktionen offline unterstützen kann.

Verwenden Sie einen Navigations-Intent, um die Anfrage eines Nutzers zu erfüllen, zu einer bestimmten Zielseite zu gelangen. Das Ziel kann entweder ein einzelner Standort (Adresse) oder mehrere Standorte (z. B. Cafés und Tankstellen) sein. Intent-Daten folgen einem URI-Format, das für jeden Intent angegeben ist.

Intent-Format

Die Klasse Intent verwendet das folgende Format für die Navigations-App-Intention:

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, eine von mehreren Optionen auszuwählen.

Manifest Intent-Filter

Deklarieren Sie das folgende Intent-Format in der Manifestdatei Ihrer App, damit Google Assistant weiß, dass Ihre Navigations-App Navigationsintents 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 sollten in den bereitgestellten Daten zu Navigations-App-Intents verfügbar sein.

Standortabfrage oder geografische Koordinaten

Jede Suchanfrage 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 abgefragte Ziel des Nutzers.

    Beispiel:geo:0,0?q=Golden+Gate+Bridge
    Interpretation:Der Nutzer möchte zur Golden Gate Bridge gelangen.

  • 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
    Bedeutung:Der Nutzer möchte zu den Koordinaten (1.1, 2.2) wechseln.

Optionale Parameter

Die optionalen Parameter, die in den Intent-Daten der Navigations-App angegeben werden, werden in diesem Abschnitt beschrieben.

Intent

Definiert die Nutzerabsicht. Wenn dieser Parameter nicht festgelegt ist, wird die Standardnutzerabsicht als navigation betrachtet.

Parameterschlüssel: intent
Mögliche Werte:

  • navigation [Standardwert]: Ersetzt das Ziel und startet die Navigation. Verwenden Sie diese Option für Suchanfragen wie zu X gehen.
  • add_a_stop: Die Haltestelle wird zusammen mit vorherigen Zielen als nächstes Ziel hinzugefügt. Verwenden Sie diese Option für Suchanfragen wie Haltestelle an X hinzufügen.
  • directions: Zeigt eine Routenbeschreibung an, ohne die Navigation zu starten. Verwenden Sie diese Option für Suchanfragen wie Wegbeschreibung zu X.

Beispiel:geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop Bedeutung:Der Nutzer möchte der Haltestelle Bellevue Square in Bellevue die aktuellen Koordinaten [47.6, -122.2] hinzufügen.

Vermeiden

Hier werden Dinge definiert, die bei der Navigation vermieden werden sollten.

Parameterschlüssel: avoid
Mögliche Werte:

  • f – Fähren
  • h – Autobahnen
  • t – Mautgebühren

Beispiel:geo:0,0?q=googleplex&avoid=tf
Interpretation:Der Nutzer möchte zu Googleplex fahren und dabei Mautstraßen und Fähren vermeiden.

Mobilitätsform

Der Mobilitätsmodus gibt die in der Suchanfrage angegebene Mobilitätsform an.

Parameterschlüssel: mode
Mögliche Werte:

  • b – Fahrrad
  • d – Laufwerk
  • x – Taxi
  • l – Motorrad
  • r – öffentliche Verkehrsmittel
  • 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 Eingabequelle verwendet.

Mögliche Werte:assistant

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

Suchabsicht

Mit einer Suchabsicht können Sie während der Fahrt nach einer Suchanfrage suchen und mehrere Ergebnisse entlang der Route anzeigen lassen.

Intent-Format

Die Intent-Klasse verwendet das folgende Format für Suchanfragen:

Kategorie:android.intent.category.DEFAULT

Aktion:android.intent.action.VIEW

Schema:geo

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

Vorgeschlagenes App-Verhalten:Eine Liste der Standorte öffnen, die zur Nutzerabfrage passen.

Manifest Intent-Filter

Deklarieren Sie das folgende Intent-Format in der Manifestdatei Ihrer App, damit Google Assistant weiß, dass Ihre Navigations-App Suchintents 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 sollten in den bereitgestellten Daten zur Suchabsicht verfügbar sein.

Standortabfrage

Eine Standortabfrage ist der Ort, nach dem der Nutzer während der Fahrt sucht. Diese Suchanfrage kann ungenau sein oder sich auf eine aktive Navigationsroute beziehen.

Parameterschlüssel:q
Wert:Der Suchbegriff des Nutzers. Dies kann ein Ortstyp wie Café oder Universität sein, aber auch Quantifizierer wie -in meiner Nähe oder -mit der besten Bewertung.

Beispiel:geo:0,0?q=restaurants+nearby
Interpretation:Der Nutzer möchte nach Restaurants in der Nähe suchen.

Absicht für benutzerdefinierte Aktion

Verwenden Sie eine benutzerdefinierte Intent-Aktion 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 Aktionsabsicht:

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 Google Assistant 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

In den bereitgestellten Daten für benutzerdefinierte Aktions-Intents sollten die folgenden Parameter verfügbar sein:

Aktionstyp

Hier wird die Art der benutzerdefinierten Aktion definiert, 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 Sprachanweisungen stummschalten.

  • geo.action:?act=exit_navigation
    Interpretation:Der Nutzer möchte die aktuelle Navigation verlassen.

Vorgeschlagenes App-Verhalten:Führen Sie die angeforderte Aktion in der Navigations-App aus oder zeigen Sie eine Meldung zu nicht unterstützten Aktionen an.

Die folgende Abbildung zeigt ein Beispiel für Schlüssel/Wert-Paare in der Antwortabfrage:

Datenfluss für benutzerdefinierte Aktionen mit gemeinsamer Absicht

Abbildung 2: Datenfluss für benutzerdefinierte Aktionsabsicht

Schlüssel/Wert-Paar:

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

Jede benutzerdefinierte Aktion hat immer einen act-Parameter als Schlüssel. Im obigen Beispielcode können einige Aktionen zusätzliche Schlüssel/Wert-Paare haben. act=report_crash unterstützt beispielsweise die folgenden zusätzlichen Tasten: 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 Google Assistant als 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 Mautgebühren zuzulassen.
apply_electric_vehicle_connector_filter Nur Ladestationen für Elektrofahrzeuge anzeigen, die mit dem Anschlussstecker des Autos übereinstimmen.
apply_electric_vehicle_fast_charging_filter Nur Ladestationen für Elektrofahrzeuge anzeigen, die Schnellladestationen sind.
apply_electric_vehicle_payment_filter Nur Ladestationen für Elektrofahrzeuge anzeigen, für die eine Zahlung erforderlich ist.
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.
clear_search_results Suchergebnisse auf der Karte löschen
distance_to_destination Entfernung zum Ziel anzeigen
distance_to_next_turn Entfernung zur nächsten Abbiegung anzeigen
eta Die voraussichtliche Ankunftszeit am Ziel anzeigen.
exit_navigation Beenden oder abbrechen Sie die Navigation.
follow_mode Ändern Sie die Kartenansicht in den „Folgemodus“.
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 Sprachführung stummschalten
query_current_road Die Straße anzeigen, auf der sich der Nutzer gerade befindet.
query_destination Zeigen Sie, was das Ziel ist.
query_next_turn Die nächste Abbiegung anzeigen
remove_electric_vehicle_connector_filter Entfernen Sie die Filterung für Ladestationen für Elektrofahrzeuge, die mit dem Anschlussstecker des Autos übereinstimmen.
remove_electric_vehicle_fast_charging_filter Die Filterung für Ladestationen für Elektrofahrzeuge, die Schnellladestationen sind, wurde entfernt.
remove_electric_vehicle_payment_filter Entfernen Sie die Filterung für Ladestationen für Elektrofahrzeuge, für die eine Zahlung erforderlich ist.
report_crash Melden Sie Abstürze. 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 Melden Sie Straßensperrungen. road_closure_type partial
full
report_traffic Melden Sie Staus. traffic_type moderate
heavy
standstill
road_direction this_side
other_side
resume_navigation Fortsetzen der Navigation
route_overview Routenübersicht anzeigen
show_alternates Alternative Routen anzeigen
show_directions_list Detaillierte Routenführung anzeigen
show_satellite Satelliteninformationen auf der Karte anzeigen
show_traffic Verkehrslage auf der Karte anzeigen
time_to_destination Die voraussichtliche Ankunftszeit am Ziel anzeigen.
time_to_next_turn Die geschätzte Zeit bis zur nächsten Abbiegung anzeigen.
unmute Heben Sie die Stummschaltung der Sprachführung auf.