Gemini używa 3 różnych formatów intencji, które mogą być obsługiwane przez Twoją aplikację do nawigacji.
Aby zapewnić interoperacyjność i zintegrować aplikację z Gemini, zadeklaruj w manifeście aplikacji filtry intencji opisane na tej stronie.
Więcej informacji o intencjach znajdziesz w Intent.
Klasa aplikacji do nawigacji Gemini Intent obsługuje te intencje:
- Intencja nawigacji
- Zamiar wyszukiwania
- Zamiar działania niestandardowego
Rysunek 1. Przepływ danych o intencjach.
Parametry w danych o zamiarze
Dane intencji mają format URI zawierający parametry oparte na przekazywanej intencji. Niektóre parametry są zawsze podawane w danych. Oznacza to, że możesz oczekiwać, że zawsze będą miały wartość wyrażoną w sposób jawny. W przypadku parametrów opcjonalnych nie zawsze jest ustawiona wartość w danych. Więcej informacji znajdziesz w artykule Test danych.
Zamiary offline
Wszystkie intencje wymienione na tej stronie mają dostępne warianty offline.
Możesz je odróżnić, dodając do schematu symbol .offline.
Na przykład intencja nawigacji korzysta ze schematu geo.offline.
Te filtry intencji w pliku manifestu oznaczają, że aplikacja może obsługiwać te działania offline.
Intencja nawigacji
Użyj intencji nawigacji, 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 o intencjach są zgodne z formatem URI określonym dla każdej intencji.
Format intencji
Klasa Intent używa tego formatu w przypadku 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=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
Sugerowane działanie aplikacji: rozpoczyna się nawigacja do określonej lokalizacji lub użytkownik jest proszony o wybór spośród kilku opcji.
Filtry intencji w pliku manifestu
Zadeklaruj w pliku manifestu aplikacji ten format intencji, aby Gemini wiedział, że Twoja aplikacja do nawigacji może odbierać intencje nawigacyjne.
Wszystkie formaty z wyjątkiem Androida Auto i systemu operacyjnego Android 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>
Podane parametry
Oczekuje się, że w dostarczonych danych intencji aplikacji do nawigacji będą dostępne te parametry.
Zapytanie o lokalizację lub współrzędne geograficzne
Każde zapytanie dotyczące intencji nawigacyjnych zawiera co najmniej jeden z tych parametrów, w zależności od typu żądanych danych:
Zapytanie o lokalizację
Odnosi się do lokalizacji, do której użytkownik próbuje wyznaczyć trasę. Użyj tych danych, aby określić miejsce docelowe użytkownika.
Klucz parametru:
q
Wartość: miejsce docelowe, o które pyta użytkownik.Przykład:
geo:0,0?q=Golden+Gate+Bridge
Interpretacja: użytkownik chce przejść do mostu Golden Gate.Współrzędne geograficzne (szerokość i długość geograficzna)
Odwołuje się do konkretnych współrzędnych używanych przez użytkownika do nawigacji.
Klucz parametru:
geo:lat,long
Wartość: współrzędne zapytania 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
Opcjonalne parametry podane w danych intencji aplikacji do nawigacji są opisane w tej sekcji.
Intencja
Określa intencję użytkownika. Jeśli ten parametr nie jest ustawiony, domyślny zamiar użytkownika jest traktowany jako navigation.
Klucz parametru: intent
Możliwe wartości:
navigation[wartość domyślna] – zastępuje miejsce docelowe i rozpoczyna nawigację. Używaj tej opcji w przypadku zapytań takich jak nawiguj do x.add_a_stop– dodaje przystanek jako następne miejsce docelowe wraz z poprzednimi miejscami docelowymi. Używaj tej opcji w przypadku zapytań takich jak dodaj przystanek w miejscu x.directions– wyświetla wskazówki dojazdu bez rozpoczynania nawigacji. Użyj tego w przypadku zapytań takich jak wskazówki dojazdu 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 w Bellevue Square w Bellevue o obecnych współrzędnych [47.6, -122.2].
Unikaj
Określa, czego należy unikać podczas nawigacji.
Klucz parametru: avoid
Możliwe wartości:
f– promyh– autostradyt– opłaty za przejazd
Przykład: geo:0,0?q=googleplex&avoid=tf
Interpretacja: użytkownik chce dojechać do Googleplexu, unikając dróg płatnych i promów.
Tryb podróży
Środek transportu to metoda transportu określona w zapytaniu przez użytkownika.
Klucz parametru: mode
Możliwe wartości:
b– rowerd– dojazdx– taksówkal– motocyklr– transport publicznyw– pieszo
Przykład: geo:0,0?q=Googleplex&mode=r
Interpretacja: użytkownik chce dojechać do Googleplexu środkami transportu publicznego.
Wpis
Służy do rejestrowania źródła wejścia.
Możliwe wartości: assistant
Przykład: geo:47.61594547836694,-122.20373173098756?entry=assistant
Zamiar wyszukiwania
Użyj zamiaru wyszukiwania, aby wyszukać zapytanie i wyświetlić wiele wyników na trasie podczas jazdy.
Format intencji
Klasa Intent używa tego formatu w przypadku 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: otwórz listę lokalizacji pasujących do zapytania użytkownika.
Filtry intencji w pliku manifestu
Zadeklaruj w pliku manifestu aplikacji ten format intencji, aby Gemini 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>
Podane parametry
W dostarczonych danych o zamiarach wyszukiwania powinny być dostępne te parametry.
Zapytanie o lokalizację
Zapytanie o lokalizację to lokalizacja, której użytkownik szuka podczas jazdy. To zapytanie może być nieprecyzyjne lub dotyczyć aktywnej trasy nawigacji.
Klucz parametru: q
Wartość: wyszukiwane przez użytkownika hasło, które może być typem lokalizacji, np. kawiarnia lub uczelnia, ale może też zawierać kwantyfikatory, np. -w pobliżu lub -z najwyższą oceną.
Przykład: geo:0,0?q=restaurants+nearby
Interpretacja: użytkownik chce wyszukać restauracje w pobliżu.
Zamiar działania niestandardowego
Używaj niestandardowego zamiaru w przypadku działań niestandardowych, takich jak zgłaszanie wypadków i kończenie 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 w przypadku 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ć Gemini, że Twoja aplikacja do nawigacji może odbierać intencje działań niestandardowych:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo.action" />
</intent-filter>
Podane parametry
Oczekuje się, że w dostarczonych danych intencji działania niestandardowego będą dostępne te parametry:
Typ działania
Określa 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ć instrukcje głosowe.geo.action:?act=exit_navigation
Interpretacja: użytkownik chce zakończyć bieżącą nawigację.
Sugerowane działanie aplikacji: wykonaj żądane działanie w aplikacji do nawigacji lub wyświetl komunikat o nieobsługiwanym działaniu.
Na ilustracji poniżej przedstawiono przykład par klucz-wartość w zapytaniu o odpowiedź:
Rysunek 2. Przepływ danych o zamiarach w działaniu niestandardowym.
Para klucz-wartość:
"act": "report_crash"
"road_direction": other_side"
Każda czynność niestandardowa ma zawsze parametr act jako klucz. W podanym wyżej 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_type i road_direction.
Klucz accident_type może mieć 2 wartości: minor i major.
Możliwe wartości
Tabela zawiera możliwe wartości, które Gemini może przekazywać jako działanie, które użytkownik próbuje wykonać w aplikacji do nawigacji.
| Wartość | Opis | Opcjonalne klucze parametrów | Wartości parametrów opcjonalnych |
|---|---|---|---|
allow_ferries
|
Zmień preferencje trasy, aby zezwolić na promy. | ||
allow_highways
|
Zmień preferencje trasy, aby zezwolić na autostrady. | ||
allow_tolls
|
Zmień ustawienia trasy, aby zezwolić na opłaty. | ||
avoid_ferries
|
Zmień preferencje trasy, aby unikać promów. | ||
avoid_highways
|
Zmień preferencje trasy, aby unikać autostrad. | ||
avoid_tolls
|
Zmień ustawienia trasy, aby unikać opłat. | ||
distance_to_destination
|
Wyświetl odległość od miejsca docelowego. | ||
distance_to_next_turn
|
wyświetlać odległość do następnego zakrętu; | ||
eta
|
Wyświetl szacowany czas dotarcia na miejsce docelowe. | ||
exit_navigation
|
Zakończ lub anuluj nawigację. | ||
follow_mode
|
Zmień widok mapy na tryb śledzenia. | ||
go_back
|
Wróć do poprzedniego działania na mapie. | ||
hide_satellite
|
Zmień ustawienia mapy, aby ukryć informacje satelitarne. | ||
hide_traffic
|
Zmień ustawienia mapy, aby ukryć informacje o natężeniu ruchu. | ||
mute
|
Wycisz wskazówki głosowe. | ||
query_current_road
|
Pokaż, na jakiej drodze znajduje się użytkownik. | ||
query_destination
|
Pokaż miejsce docelowe. | ||
query_next_turn
|
Pokaż, co będzie następne. | ||
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ć aktywność policji, | road_direction
|
this_side
|
other_side
|
|||
report_road_closure
|
zgłaszać zamknięcia dróg; | road_closure_type
|
partial
|
full
|
|||
report_traffic
|
Zgłoś natężenie ruchu. | traffic_type
|
moderate
|
heavy
|
|||
standstill
|
|||
road_direction
|
this_side
|
||
other_side
|
|||
route_overview
|
Pokaż opis trasy. | ||
show_alternates
|
Pokaż trasy alternatywne. | ||
show_directions_list
|
Wyświetl szczegółowe wskazówki. | ||
show_satellite
|
Wyświetl informacje o satelitach na mapie. | ||
show_traffic
|
Pokaż natężenie ruchu na mapie. | ||
time_to_destination
|
Wyświetlanie szacowanego czasu dotarcia do miejsca docelowego. | ||
time_to_next_turn
|
Wyświetl szacowany czas dotarcia do następnego zakrętu. | ||
unmute
|
Włącz wskazówki głosowe. |
Pobieranie stanu nawigacji
Aby mieć pewność, że Gemini może przekazywać użytkownikowi dokładne informacje w czasie rzeczywistym, gdy zapyta o stan podróży, Twoja aplikacja musi udostępniać metadane nawigacji za pomocą usługi NavigationManager. Wskazówki dotyczące implementacji znajdziesz w artykule Przekazywanie metadanych nawigacji.