Implementowanie intencji aplikacji do nawigacji

Asystent Google używa 3 różnych formatów intencji, które mogą być obsługiwane przez Twoją aplikację nawigacyjną. Interoperacyjność i integrację aplikacji z Asystentem Google możesz osiągnąć, deklarując w manifeście aplikacji filtry intencji opisane na tej stronie. Więcej informacji o intencjach znajdziesz w artykule Intent.

Klasa aplikacji do nawigacji w Asystencie Intent obsługuje te intencje:

  • Zamiar nawigacji
  • Zamiar wyszukiwania
  • Niestandardowe działanie

Przepływ danych o intencji

Rysunek 1. Przepływ danych o zamierzeniu.

Parametry w danych o zamiarze

Dane intencji są zgodne z formatem URI zawierającym parametry oparte na przekazywanej przez Ciebie intencji. Niektóre parametry są zawsze podawane w danych. Oznacza to, że możesz oczekiwać, że zawsze będą one zawierać jawną wartość. Opcjonalne parametry nie zawsze mają ustawioną wartość w danych. Więcej informacji znajdziesz w artykule Test danych.

Zamiary offline

Wszystkie intencje wymienione na tej stronie mają dostępne wersje offline. Możesz je odróżnić, dodając do ich schematu .offline. Na przykład intencja nawigacji używa schematu geo.offline. Filtry intencji w pliku manifestu wskazują, że aplikacja obsługuje te działania offline.

Użyj intencji nawigacyjnej, aby spełnić prośbę użytkownika o przejście do określonego miejsca docelowego. Może to być pojedyncza lokalizacja (adres) lub wiele lokalizacji (np. kawiarnie i stacje benzynowe). Dane intencji są zgodne z formatem URI określonym dla każdej intencji.

Format intencji

Klasa Intent używa tego formatu intencji aplikacji do nawigacji:

Kategoria: android.intent.category.DEFAULT

Działanie:

  • Android Auto i system operacyjny Android Automotive:androidx.car.app.action.NAVIGATE
  • Inne formaty:android.intent.action.NAVIGATE

Schemat: geo

Przykłady:

  • 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

Proponowane działanie aplikacji: rozpoczyna się nawigacja do określonej lokalizacji lub użytkownik jest proszony o wybranie jednej z kilku opcji.

Filtry intencji w pliku manifestu

Zadeklaruj w pliku manifestu aplikacji ten format inencji, aby Asystent Google wiedział, że Twoja aplikacja do nawigacji może odbierać intencje nawigacyjne.

Wszystkie formaty oprócz Androida Auto i Androida Automotive:

<intent-filter>
  <action android:name="android.intent.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

Android Auto i system operacyjny Android Automotive:

<intent-filter>
  <action android:name="androidx.car.app.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

Dostarczone parametry

W dostarczonych danych o intencji aplikacji do nawigacji powinny być dostępne te parametry:

zapytanie o lokalizację lub współrzędne geograficzne;

Każde zapytanie o intencję nawigacyjną zawiera jeden lub oba te parametry w zależności od typu żądanych danych:

  • Zapytanie o lokalizację

    Odnosi się do lokalizacji, do której użytkownik chce się udać. Użyj tych danych, aby określić miejsce docelowe użytkownika.

    Klucz parametru: q
    Wartość: miejsce docelowe zapytanego przez użytkownika.

    Przykład: geo:0,0?q=Golden+Gate+Bridge
    Interpretacja: użytkownik chce się udać na Golden Gate Bridge.

  • Współrzędne geograficzne (szerokość i długość geograficzna)

    Odnosi się do konkretnych współrzędnych używanych przez użytkownika do nawigacji.

    Klucz parametru: geo:lat,long
    Wartość: zapytane współrzędne użytkownika.

    Przykład: geo:1.1,2.2?mode=w&intent=navigation
    Interpretacja: użytkownik chce przejść do współrzędnych (1.1, 2.2).

Parametry opcjonalne

W tej sekcji opisano opcjonalne parametry podawane w danych o intencji korzystania z aplikacji do nawigacji.

Zamiar

Określa zamiar użytkownika. Jeśli ten parametr nie jest określony, domyślnym zamiarem użytkownika jest navigation.

Klucz parametru: intent
Możliwe wartości:

  • navigation [wartość domyślna] – zastępuje miejsce docelowe i uruchamia nawigację. Użyj tego w przypadku zapytań takich jak przejdź do x.
  • add_a_stop – dodaje przystanek jako następne miejsce docelowe wraz z poprzednimi miejscami docelowymi. Użyj tego w przypadku zapytań takich jak add a stop at x.
  • directions – wyświetla wskazówki dojazdu bez uruchamiania nawigacji. Użyj tego adresu, aby uzyskać odpowiedzi na pytania w rodzaju jak dojechać do X.

Przykład: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop Interpretacja: użytkownik chce dodać przystanek na Bellevue Square w Bellevue o współrzędnych [47.6, -122.2].

Unikaj

Określa elementy, których należy unikać w nawigacji.

Klucz parametru: avoid
Możliwe wartości:

  • f – promy
  • h – autostrady
  • t opłaty

Przykład: geo:0,0?q=googleplex&avoid=tf
Interpretacja: użytkownik chce dojechać do Googleplex, unikając opłat i promów.

Tryb podróży

Tryb podróży to środek transportu określony w zapytaniu przez użytkownika.

Klucz parametru: mode
Możliwe wartości:

  • b – rower
  • d – dysk
  • x – taksówka
  • l – motocykl dwukołowy
  • r – transport
  • w – pieszo

Przykład: geo:0,0?q=Googleplex&mode=r
Interpretacja: użytkownik chce dostać się do Googleplex komunikacją publiczną.

Wpis

Służy do rejestrowania źródła danych.

Możliwe wartości: asystent

Przykład: geo:47.61594547836694,-122.20373173098756?entry=assistant

Zamiar wyszukiwania

Używaj intencji wyszukiwania, aby wyszukiwać zapytania i wyświetlać wiele wyników na trasie podczas jazdy.

Format intencji

Klasa Intent używa tego formatu intencji wyszukiwania:

Kategoria: android.intent.category.DEFAULT

Działanie: android.intent.action.VIEW

Schemat: geo

Przykład: geo:0,0?q=restaurants+nearby

Sugerowane działanie aplikacji: otwiera listę lokalizacji pasujących do zapytania użytkownika.

Filtry intencji w pliku manifestu

Zadeklaruj w pliku manifestu aplikacji ten format intencji, aby Asystent Google wiedział, że Twoja aplikacja do nawigacji może odbierać intencje wyszukiwania:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

Dostarczone parametry

W dostarczonych danych o intencjach wyszukiwania powinny być dostępne te parametry:

Zapytanie o lokalizację

Zapytanie o lokalizację to lokalizacja, której szuka użytkownik podczas jazdy. To zapytanie może być nieprecyzyjne lub dotyczyć aktywnej trasy nawigacyjnej.

Klucz parametru: q
Wartość: wyszukiwane hasło użytkownika, które może być typem lokalizacji, np. kawiarnia lub szkoła, ale może też zawierać modyfikatory, np. -blisko mnie lub -najlepiej ocenione.

Przykład: geo:0,0?q=restaurants+nearby
Interpretacja: użytkownik chce wyszukać restauracje w pobliżu.

Niestandardowe działanie

Używaj niestandardowych intencji do wykonywania niestandardowych działań, takich jak zgłaszanie wypadków i zatrzymywanie nawigacji. Główny typ działania jest definiowany przez parametr zapytania act. W zależności od typu działania możesz ustawić dodatkowe parametry.

Format intencji

Klasa Intent używa tego formatu zamiaru działania niestandardowego:

Kategoria: android.intent.category.DEFAULT

Działanie: android.intent.action.VIEW

Schemat: geo.action

Przykład: geo.action:?act=report&accident_type=major

Filtry intencji w pliku manifestu

Zadeklaruj w pliku manifestu aplikacji ten format intencji, aby poinformować Asystenta Google, że Twoja aplikacja do nawigacji może odbierać niestandardowe intencje działania.

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo.action" />
</intent-filter>

Dostarczone parametry

W dostarczonych danych o intencji działania aplikacji niestandardowej powinny być dostępne te parametry:

Typ działania

Określa on typ działania niestandardowego, które użytkownik chce wykonać.

Klucz parametru: act

Przykłady:

  • geo.action:?act=report_crash&accident_type=major
    Interpretacja: użytkownik chce zgłosić poważny wypadek.

  • geo.action:?act=mute
    Interpretacja: użytkownik chce wyciszyć wskazówki głosowe.

  • geo.action:?act=exit_navigation
    Interpretacja: użytkownik chce zamknąć bieżącą stronę.

Sugerowane działanie aplikacji: wykonaj wymagane działanie w aplikacji do nawigacji lub wyświetl komunikat o nieobsługiwanym działaniu.

Na rysunku poniżej widać przykład par klucz-wartość w zapytaniu odpowiedzi:

Przepływ danych dotyczących intencji działań niestandardowych

Rysunek 2. Przepływ danych dotyczących intencji działań niestandardowych.

Para klucz-wartość:

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

Każda niestandardowa czynność ma jako klucz parametr act. W przytoczonym przykładowym kodzie niektóre działania mogą mieć dodatkowe pary klucz-wartość. Na przykład act=report_crash obsługuje te dodatkowe klucze: accident_typeroad_direction.

Klucz accident_type może mieć 2 wartości: minormajor.

Możliwe wartości

Tabela zawiera możliwe wartości, które Asystent Google może przekazać jako działanie, które użytkownik chce wykonać w aplikacji do nawigacji.

Wartość Opis Opcjonalne klucze parametrów Opcjonalne wartości parametrów
allow_ferries Zmień ustawienie trasy, aby zezwalać na promy.
allow_highways Zmień preferencję trasy, aby zezwalać na autostrady.
allow_tolls Zmień preferencję trasy, aby zezwalać na opłaty drogowe.
apply_electric_vehicle_connector_filter Wyświetlaj tylko lokalizacje stacji ładowania pojazdów elektrycznych, które pasują do wtyczki samochodu.
apply_electric_vehicle_fast_charging_filter Wyświetlaj tylko lokalizacje stacji ładowania EV, które są szybkimi ładowarkami.
apply_electric_vehicle_payment_filter Wyświetlaj tylko stacje ładowania EV, które wymagają płatności.
avoid_ferries Zmień ustawienie trasy, aby uniknąć promów.
avoid_highways Zmień ustawienie trasy, aby unikać autostrad.
avoid_tolls Zmień ustawienie trasy, aby uniknąć opłat.
clear_search_results Wyczyść wyniki wyszukiwania na mapie.
distance_to_destination Pokaż odległość do miejsca docelowego.
distance_to_next_turn wyświetlanie odległości do następnego zakrętu;
eta Pokaż szacowany czas dotarcia do miejsca docelowego.
exit_navigation Zakończ lub anuluj nawigację.
follow_mode Zmień widok mapy na tryb śledzenia.
go_back Wróć do poprzedniej czynności na mapie.
hide_satellite Zmień ustawienia mapy, aby ukryć informacje satelitarne.
hide_traffic Zmień ustawienie mapy, aby ukryć informacje o natężeniu ruchu.
mute Wycisz wskazówki głosowe.
query_current_road Pokaż, na jakiej drodze aktualnie znajduje się użytkownik.
query_destination Pokaż miejsce docelowe.
query_next_turn Pokaż, co jest następne.
remove_electric_vehicle_connector_filter Usuń filtrowanie lokalizacji stacji ładowania EV, które pasują do wtyczki samochodu.
remove_electric_vehicle_fast_charging_filter Usuń filtrowanie lokalizacji stacji ładowania EV, które są szybkimi ładowarkami.
remove_electric_vehicle_payment_filter Usuń filtrowanie lokalizacji stacji ładowania EV, które wymagają płatności.
report_crash zgłaszać wypadki; accident_type minor
major
road_direction this_side
other_side
report_hazard zgłaszać zagrożenia. 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 zgłaszać działania policji. road_direction this_side
other_side
report_road_closure zgłaszać zamknięcia dróg; road_closure_type partial
full
report_traffic zgłaszać natężenie ruchu; traffic_type moderate
heavy
standstill
road_direction this_side
other_side
resume_navigation Wznów nawigację.
route_overview Wyświetl opis trasy.
show_alternates wyświetlać alternatywne trasy.
show_directions_list Wyświetl szczegółowe wskazówki dojazdu.
show_satellite wyświetlać informacje satelitarne na mapie.
show_traffic pokazywać natężenie ruchu na mapie;
time_to_destination Pokaż szacowany czas dotarcia do miejsca docelowego.
time_to_next_turn Wyświetlanie czasu do następnego skrętu.
unmute Włącz wskazówki głosowe.