Über Android Automotive-Intents können Sie die Navigation in Google Maps starten.
Übersicht
Auf dieser Seite werden die Intents beschrieben, die Sie mit Google Maps für Android Automotive verwenden können. Eine ausführliche Dokumentation für Android-Entwickler finden Sie hier:
Intent-Anfragen
Wenn Sie Google Maps für Android Automotive mit einem Intent starten möchten, müssen Sie zuerst ein Intent
-Objekt erstellen und die Aktion, den URI und das Paket angeben.
Aktion Alle Google Maps-Intents werden als „Anzeigen“-Aktion aufgerufen,
ACTION_VIEW
.URI Google Maps-Intents verwenden URI-codierte Strings, die eine ausgewählte Aktion sowie einige Daten angeben, mit denen die Aktion ausgeführt werden soll.
Paket. Wenn Sie
setPackage("com.google.android.apps.maps")
aufrufen, wird der Intent von der Google Maps App für Android verarbeitet. Wenn das Paket nicht festgelegt ist, bestimmt das System, welche Apps den Intent verarbeiten können. Wenn mehrere Apps verfügbar sind, werden Sie möglicherweise gefragt, welche App Sie verwenden möchten.
Nachdem Sie den Intent erstellt haben, können Sie das System auf verschiedene Arten auffordern, die zugehörige App zu starten. Eine gängige Methode ist die Weitergabe des Intents an die Methode startActivity()
. Das System startet die erforderliche App, in diesem Fall Google Maps, und die entsprechende Activity
.
// Create a Uri from an intent string. Use the result to create an Intent.
Uri mapIntentUri =
Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
// Create an Intent from mapIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps");
// Attempt to start an activity that can handle the Intent
startActivity(mapIntent);
Wenn das System keine App findet, die auf den Intent reagieren kann, stürzt Ihre App möglicherweise ab. Prüfen Sie daher zuerst, ob eine Empfängeranwendung installiert ist, bevor Sie einem Nutzer einen dieser Intents präsentieren.
Um zu prüfen, ob eine App zum Empfangen der Intent verfügbar ist, rufen Sie resolveActivity()
auf Ihrem Intent
-Objekt auf. Wenn das Ergebnis nicht null ist, gibt es mindestens eine App, die die Intent verarbeiten kann, und startActivity()
kann sicher aufgerufen werden. Wenn das Ergebnis null ist, sollten Sie den Intent nicht verwenden und nach Möglichkeit die Funktion deaktivieren, die den Intent aufruft.
if (mapIntent.resolveActivity(getPackageManager()) != null) {
...
}
Wenn Sie beispielsweise eine detaillierte Wegbeschreibung zum Taronga Zoo in Sydney starten möchten, können Sie den folgenden Code verwenden:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}
URI-codierte Suchstrings
Alle an die Google Maps-Intents übergebenen Strings müssen URI-codiert sein. Beispiel: Aus dem String „1st & Pike, Seattle“ sollte 1st%20%26%20Pike%2C%20Seattle
werden.
Leerzeichen im String können mit %20
codiert oder durch das Pluszeichen (+) ersetzt werden.
Sie können die Methode android.net.Uri parse()
zum Codieren Ihrer Strings verwenden. Beispiel:
Uri mapIntentUri = Uri.parse("google.navigation:q=" + Uri.encode("1st & Pike, Seattle"));
Detaillierte Routenführung starten
Mit dieser Intent-Aktion können Sie die Google Maps-Navigation mit einer detaillierten Wegbeschreibung zu einer oder mehreren angegebenen Adressen oder Koordinaten starten. Die Wegbeschreibungen beginnen immer am aktuellen Standort des Nutzers.
google.navigation:q=a+street+address
google.navigation:q=latitude,longitude
google.navigation:place=placename
Parameter
Verwenden Sie place
oder q
mit waypoints
, um die Navigation zu starten. waypoints
ist optional. Wie Sie einen Wegpunkt optional als Ladestation markieren, erfahren Sie unter Reiseplan für Elektrofahrzeuge an Google Maps senden.
q
legt den Endpunkt für Navigationssuchen fest. Dies kann ein Breiten- und Längengrad oder eine in Form einer Abfrage formatierte Adresse sein. Wenn es sich um einen Abfragestring handelt, der mehrere Ergebnisse zurückgibt, wird das erste Ergebnis ausgewählt.place
legt den Endpunkt auf „Zuhause“ oder „Arbeit“ fest. Geben Sie „Zuhause“ an, um zur Privatadresse des Nutzers zu navigieren, und „Arbeit“, um zur Arbeitsadresse des Nutzers zu navigieren.Mit
avoid
werden Elemente festgelegt, die die Route möglichst vermeiden sollte.avoid
ist optional und kann auf einen oder mehrere der folgenden Werte festgelegt werden:t
für Mautgebührenh
für Autobahnenf
für Fähren
waypoints
gibt eine oder mehrere Zwischenstationen an, über die die Wegbeschreibung zum mitq
angegebenen Ziel führt. Sie können mehrere Wegpunkte angeben, indem Sie Orte durch das Pipe-Zeichen (|
) trennen, z. B.Berlin,Germany|Paris,France
. Sie können beliebig viele Wegpunkte verwenden. Die Wegpunkte werden der Route in der Reihenfolge hinzugefügt, in der sie in der URL aufgeführt sind. Jeder Wegpunkt kann entweder eine Adresse oder kommagetrennte Breiten- und Längengrade sein. Außerdem können Sie in derselben Absicht Adressen und Breiten- und Längengrade angeben. Strings müssen URL-entkommentiert sein. Wegpunkte wie „Berlin, Deutschland|Paris, Frankreich“ müssen also inBerlin%2CGermany%7CParis%2CFrance
umgewandelt werden.
Beispiele
Mit dieser Intent-Anfrage wird eine detaillierte Wegbeschreibung zum Taronga Zoo in Sydney, Australien, angefordert:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Wenn Sie keine Maut bezahlen oder keine Fähre nutzen möchten, können Sie eine Route anfordern, bei der diese Situationen vermieden werden:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Wenn Sie lieber zu Ihrem Zuhause navigieren möchten, verwenden Sie Folgendes:
Uri mapIntentUri = Uri.parse("google.navigation:place=home");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Wenn Sie eine detaillierte Wegbeschreibung zu den folgenden drei Adressen starten möchten, geben Sie den Taronga Zoo als Ziel q
und Google Sydney und das Sydney Opera House als Wegpunkte an:
Google Sydney
Sydney Opera House
Taronga Zoo, Sydney, Australien
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7CSydney+Opera+House");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Ähnlich wie bei q
können Sie jeden der Wegpunkte durch einen durch Komma getrennten Breiten- und Längengrad anstelle einer Adresse angeben. So starten Sie beispielsweise dieselbe Navigation, indem Sie für das Sydney Opera House die geografische Breite und Länge anstelle der Adresse übergeben:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7C-33.856159,151.215256");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Fahrtenplan für Elektrofahrzeuge an Google Maps senden
Verwenden Sie diese Navigationsabsicht mit mehreren Zielen, um einige Ziele als Ladestationen für Elektrofahrzeuge anzugeben. Diese Intent-Erweiterung der Intent-Funktion mit mehreren Wegpunkten hilft Fahrern, den Akkustand ihres Elektrofahrzeugs so zu halten, dass sie ihr Ziel erreichen. Dazu werden Informationen zu Ladestopps zwischen Apps zur Routenplanung für Elektrofahrzeuge und Google Maps synchronisiert.
Für Ladestopps gilt Folgendes:
- Muss den Namen und die Koordinaten enthalten
- Kann optional die Leistungsabgabe enthalten, die für die Berechnung der Ladezeit verwendet wird.
Google verwendet den Namen der Ladestation und die Breiten- und Längengradkoordinaten, um einen zugehörigen Ladestationsort zu finden und umfangreiche Daten wie Steckertypen, Gesamtzahl, Geschwindigkeiten und Echtzeitverfügbarkeit, unterstützte Zahlungsmethoden und POIs (Points of Interest) anzuzeigen. Beispielsweise Wegbeschreibungen für den letzten Teil der Navigation auf Parkplätzen im Freien, Öffnungszeiten und Bewertungen. Verwenden Sie <brand name>
, z. B. ChargePoint
, damit die Ladestationen gut mit den Google-Daten übereinstimmen.
Parameter
Mit den folgenden Parametern können Sie Details für das Endziel und alle Wegpunkte angeben, einschließlich der als Ladestationen für Elektrofahrzeuge gekennzeichneten.
Zielort
So legen Sie eine Ladestation als Ziel fest:
q
: Muss den Breiten- und Längengrad der Ladestation enthalten.q_type
:1
gibt an, dass das Endziel eine Ladestation ist.q_name
: Der Name des Endziels. Erforderlich, wennq_type
1
ist.q_power_output_kw
: Eine doppelte Zahl für die Leistung der Ladestation in Kilowatt. Optional:
Wegpunkte
Bei Wegpunkten sind alle Parameter parallele, durch |-getrennte Wertearrays in derselben Reihenfolge wie die Wegpunkte, ohne Endziel. Eine Abweichung bei der Anzahl der Elemente in parallelen Arrays wird als fehlerhafte Absicht behandelt.
Wenn Sie einen oder mehrere Wegpunkte für Ladestationen hinzufügen möchten, verwenden Sie die folgenden Parameter. Sie sind alle optional. Wenn eines der Ziele als Ladestation gekennzeichnet ist, ist der Name des Wegpunkts für dieses Ziel obligatorisch.
waypoints
: Liste der Wegpunkte gemäß der Navigationsanfrage für die detaillierte Streckenbeschreibung. Für Wegpunkte von Ladestationen muss ein Wert für „latitude“ und „longitude“ angegeben werden.waypoint_types
: Arten pro Wegpunkt als Zahl angegeben.0
ist eine beliebige Haltestelle (Standardwert) und1
ist die Ladestation.waypoint_names
: Wegpunktnamen Dieses Feld ist für Ladestationen obligatorisch.waypoint_power_outputs_kw
: Doppelte Zahlen für die Leistung der Ladestation in Kilowatt. Für Ladestationen können Sie optional einen Wert für die Leistung des Wegpunkts angeben, der als Fallback verwendet wird, wenn die übereinstimmende Ladestation nicht gefunden wird. Ein leerer Slot bedeutet, dass kein Wert angegeben wurde.
Nutzerfreundlichkeit (UX)
Bei Fahrtabsichten mit mehreren Zielen wird der Bildschirm mit der Routenübersicht angezeigt, die Navigation wird jedoch nicht automatisch gestartet.
Bei einer korrekt formatierten Intent-Anfrage zeigt Google Maps einen Routenübersichtsbildschirm für die Fahrt an. Auf dem Bildschirm mit der Routenübersicht werden alle Wegpunkte und das Endziel aus der Absicht angezeigt, gegebenenfalls mit Ladeempfehlungen.
Wenn Zwischenziele oder das Ziel als Ladestation gekennzeichnet sind, sucht Google Maps in der Google-Datenbank nach einem entsprechenden Ort. So sorgen Sie dafür, dass für Ladestationen die bestmöglichen Informationen angezeigt werden:
Wenn eine Übereinstimmung gefunden wird, zeigt Google Maps die Ladestation an der Benutzeroberfläche an und gibt eine Ladeempfehlung für die Ladestation aus.
Wenn keine Übereinstimmung gefunden wird, werden die Daten, die in der Intent-Anfrage für eine Ladestation angegeben sind (Koordinaten, Name und Leistung), verwendet, um diese Ladestation in der Benutzeroberfläche anzuzeigen und eine Ladeempfehlung für diese Ladestation zu geben.
Beispiele
In den folgenden Beispielen wird gezeigt, wie Sie Intents für verschiedene Szenarien zur Routenplanung für Elektrofahrzeuge erstellen, einschließlich der Navigation zu mehreren Ladestationen und der Verarbeitung unbekannter Leistungsabgaben.
Über mehrere Ladestationen zu einem Ziel navigieren
Die folgende Intent-Anfrage führt zum Endziel Port Macquarie NSW über zwei Ladestationen, ChargePoint und Evie.
Ziele in der richtigen Reihenfolge:
ChargePoint-Ladestation (Standort: -32.9599188,151.6240806, Leistung: 6,6 kW)
Evie-Ladestation (Standort: -31.9432539,152.4699808, Leistung: 350 kW)
Port Macquarie, New South Wales
Uri mapIntentUri =
Uri.parse(
"google.navigation:q=Port+Macquarie+NSW"
+ "&waypoints=-32.9599188%2C151.6240806%7C-31.9432539%2C152.4699808"
+ "&waypoint_types=1%7C1"
+ "&waypoint_names=ChargePoint+Charging+Station%7CEvie+Charging+Station"
+ "&waypoint_power_outputs_kw=6.6%7C350");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Unbekannte Ausgangsleistung
Wenn der Wert der Leistungsabgabe unbekannt ist, lassen Sie den entsprechenden Slot von waypoint_power_outputs_kw
leer. Wenn alle Slots leer sind, muss der Parameter waypoint_power_outputs_kw
nicht angegeben werden.
Ziele in der richtigen Reihenfolge:
ChargePoint-Ladestation (Standort: -32.9599188,151.6240806, Leistung: unbekannt)
Port Macquarie, New South Wales
Uri mapIntentUri =
Uri.parse(
"google.navigation:q=Port+Macquarie+NSW"
+ "&waypoints=-32.9599188%2C151.6240806"
+ "&waypoint_types=1"
+ "&waypoint_names=ChargePoint+Charging+Station");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Endziel als Ladestation markieren
Wenn Sie das Ziel als Ladestation kennzeichnen möchten, geben Sie die Parameter q_type
, q_name
und q_power_output_kw
an.
Ziele in der richtigen Reihenfolge:
Taronga Zoo, Sydney, Australien
ChargePoint-Ladestation (Standort: -32.9599188,151.6240806, Leistung: unbekannt)
Evie-Ladestation (Standort: -31.9432539,152.4699808, Leistung: 350 kW)
Uri mapIntentUri =
Uri.parse(
"google.navigation:q=-31.9432539,152.4699808&q_type=1&q_name=Evie+Charging+Station&q_power_output_kw=350"
+ "&waypoints=Taronga+Zoo%2C+Sydney+Australia%7C-32.9599188%2C151.6240806"
+ "&waypoint_types=0%7C1"
+ "&waypoint_names=%7CChargePoint+Charging+Station"
+ "&waypoint_power_outputs_kw=%7C");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Aktionsabsichten
Die folgenden Aktionsintents mit Benutzeroberflächen sind verfügbar:
Aktion | Beschreibung |
---|---|
geo.action:?act=mute |
Die Sprachnavigation wird stummgeschaltet. |
geo.action:?act=unmute |
Die Sprachführung für die Navigation wird wieder aktiviert. |
geo.action:?act=show_traffic |
Zeigt Verkehrslinien auf der Karte an. |
geo.action:?act=hide_traffic |
Verkehrslinien werden auf der Karte ausgeblendet. |
geo.action:?act=show_satellite |
Zeigt Satellitenbilder auf der Karte an. |
geo.action:?act=hide_satellite |
Hiermit werden Satellitenbilder auf der Karte ausgeblendet. |
geo.action:?act=show_alternates |
In Google Maps wird der Bildschirm mit den alternativen Routen geöffnet (funktioniert nur während der Navigation). |
geo.action:?act=query_next_turn |
Google Maps spricht die nächste Abbiegung an (funktioniert nur während der Navigation). |
geo.action:?act=distance_to_next_turn |
Google Maps spricht die Entfernung bis zur nächsten Abbiegung an (funktioniert nur während der Navigation). |
geo.action:?act=time_to_next_turn |
Google Maps spricht die Zeit bis zur nächsten Abbiegung an (funktioniert nur während der Navigation). |
geo.action:?act=distance_to_destination |
Google Maps spricht die Entfernung zum Ziel an (funktioniert nur während der Navigation). |
geo.action:?act=go_back |
In Google Maps wird zum vorherigen Bildschirm in der Benutzeroberfläche zurückgekehrt. |
geo.action:?act=query_current_road |
Google Maps nennt die aktuelle Straße. |
geo.action:?act=query_destination |
Google Maps nennt das Ziel. |
geo.action:?act=traffic_report |
Google Maps spricht den Verkehrsbericht vor. |
geo.action:?act=clear_search_results |
Google Maps schließt den Bildschirm mit den Suchergebnissen, falls er geöffnet ist. |
geo.action:?act=apply_electric_vehicle_connector_filter |
Wendet den Anschlusstypfilter auf die Suchergebnisse für Ladestationen für Elektrofahrzeuge an. |
geo.action:?act=remove_electric_vehicle_connector_filter |
Der Filter für den Anschlusstyp wird aus den Suchergebnissen für Ladestationen für Elektrofahrzeuge entfernt. |
geo.action:?act=apply_electric_vehicle_payment_filter |
Wendet den Zahlungsfilter auf die Suchergebnisse für Ladestationen für Elektrofahrzeuge an. |
geo.action:?act=remove_electric_vehicle_payment_filter |
Der Zahlungsfilter für Suchergebnisse zu Ladestationen für Elektrofahrzeuge wird entfernt. |
geo.action:?act=apply_electric_vehicle_fast_charging_filter |
Schnellladefilter für Suchergebnisse für Ladestationen für Elektrofahrzeuge anwenden. |
geo.action:?act=remove_electric_vehicle_fast_charging_filter |
Der Filter für Schnellladestationen wird aus den Suchergebnissen für Ladestationen für Elektrofahrzeuge entfernt. |
geo.action:?act=avoid_tolls |
Wenn der Nutzer eine Routenbeschreibung abrufen möchte, bittet er Google Maps, Mautstraßen zu vermeiden. Dies kann zu einer Umleitung führen, wenn die aktuelle Route Mautgebühren enthält. |
geo.action:?act=allow_tolls |
Wenn der Nutzer eine Routenbeschreibung aufruft, wird Google Maps angewiesen, Routen mit Mautgebühren zuzulassen. Dies kann zu einer Umleitung führen, wenn durch die Zulassung von Mautgebühren eine bessere Route verfügbar ist. |
geo.action:?act=avoid_ferries |
Wenn der Nutzer eine Routenbeschreibung abrufen möchte, bittet er Google Maps, Routen mit Fähren zu vermeiden. Dies kann zu einer Umleitung führen, wenn die aktuell aktive Route Fähren umfasst. |
geo.action:?act=allow_ferries |
Wenn der Nutzer eine Routenbeschreibung abrufen möchte, wird Google Maps angewiesen, Routen mit Fähren zuzulassen. Dies kann zu einer Umleitung führen, wenn die Nutzung von Fähren zu einer besseren Route führt. |
geo.action:?act=avoid_highways |
Wenn der Nutzer eine Routenbeschreibung abrufen möchte, bittet er Google Maps, Routen mit Autobahnen zu vermeiden. Dies kann zu einer Umleitung führen, wenn die aktuell aktive Route Autobahnen enthält. |
geo.action:?act=allow_highways |
Wenn der Nutzer eine Routenbeschreibung abrufen möchte, wird Google Maps angewiesen, Routen mit Autobahnen zuzulassen. Dies kann zu einer Umleitung führen, wenn durch die Aktivierung von Autobahnen eine bessere Route verfügbar ist. |
geo.action:?act=eta |
Wenn der Nutzer eine Route anzeigt, spricht Google Maps die voraussichtliche Ankunftszeit am Zielort an (z. B. 9:15 Uhr). |
geo.action:?act=time_to_destination |
Wenn der Nutzer eine Navigation gestartet hat, gibt Google Maps die voraussichtliche Ankunftszeit an (z. B. 15 Minuten). |
geo.action:?act=exit_navigation |
Beendet die Navigation. |
geo.action:?act=select_search_result&id=0 |
Wenn Suchergebnisse auf dem Bildschirm angezeigt werden (wie im nebenstehenden Bild dargestellt), wird basierend auf dem angegebenen ID-Parameter die Navigation zum nten Ergebnis gestartet. Hinweis: Der Index beginnt bei 0. Mit geo.action:?act=select_search_result&id=0 wird also das erste Ergebnis in der Liste ausgewählt.
|