Mengimplementasikan intent aplikasi navigasi

Gemini menggunakan tiga format maksud yang berbeda yang dapat didukung oleh aplikasi navigasi Anda. Anda dapat mencapai interoperabilitas dan mengintegrasikan aplikasi Anda dan Gemini dengan mendeklarasikan filter intent yang dijelaskan di halaman ini dalam manifes aplikasi Anda. Untuk mempelajari niat lebih lanjut, lihat Intent.

Class Intent aplikasi navigasi Gemini mendukung intent berikut:

  • Intent navigasi
  • Maksud penelusuran
  • Intent tindakan kustom

Aliran data niat

Gambar 1. Aliran data niat.

Parameter dalam data intent

Data intent mengikuti format URI yang berisi parameter berdasarkan intent yang Anda teruskan. Beberapa parameter selalu disediakan dalam data. Artinya, Anda dapat mengharapkan nilai eksplisit selalu ada. Namun, parameter opsional tidak selalu memiliki nilai yang ditetapkan dalam data. Untuk mengetahui informasi selengkapnya, lihat Pengujian data.

Intent offline

Semua maksud yang tercantum di halaman ini memiliki varian offline yang tersedia. Anda dapat membedakannya dengan menambahkan .offline ke skemanya. Misalnya, intent navigasi menggunakan skema geo.offline. Filter intent ini dalam manifes menandakan kemampuan aplikasi untuk mendukung tindakan ini secara offline.

Gunakan intent navigasi untuk memenuhi permintaan pengguna agar membuka tujuan tertentu. Tujuan ini dapat berupa satu lokasi (alamat) atau beberapa lokasi (misalnya, kedai kopi dan SPBU). Data intent mengikuti format URI yang ditentukan untuk setiap intent.

Format intent

Class Intent menggunakan format berikut untuk intent aplikasi navigasi:

Kategori: android.intent.category.DEFAULT

Tindakan:

  • Android Auto dan Android Automotive OS: androidx.car.app.action.NAVIGATE
  • Faktor bentuk lainnya: android.intent.action.NAVIGATE

Skema: geo

Contoh:

  • 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

Perilaku aplikasi yang disarankan: Navigasi ke lokasi yang ditentukan dimulai atau pengguna diminta untuk memilih dari beberapa opsi.

Filter intent manifes

Deklarasikan format intent berikut dalam file manifes aplikasi Anda agar Gemini mengetahui bahwa aplikasi navigasi Anda dapat menerima intent navigasi.

Semua faktor bentuk kecuali Android Auto dan 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 dan 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>

Parameter yang diberikan

Parameter berikut diharapkan tersedia dalam data intent aplikasi navigasi yang diberikan.

Kueri lokasi atau koordinat geografis

Setiap kueri intent navigasi berisi satu atau kedua parameter ini, bergantung pada jenis data yang diminta:

  • Kueri lokasi

    Merujuk ke lokasi yang ingin dituju pengguna. Gunakan data ini untuk menyelesaikan tujuan pengguna.

    Kunci parameter: q
    Nilai: Tujuan yang dikueri pengguna.

    Contoh: geo:0,0?q=Golden+Gate+Bridge
    Interpretasi: Pengguna ingin membuka Jembatan Golden Gate.

  • Koordinat geografis (lintang dan bujur)

    Mengacu pada koordinat tertentu yang digunakan oleh pengguna untuk navigasi.

    Kunci parameter: geo:lat,long
    Nilai: Koordinat yang dikueri pengguna.

    Contoh: geo:1.1,2.2?mode=w&intent=navigation
    Interpretasi: Pengguna ingin membuka koordinat (1.1, 2.2).

Parameter opsional

Parameter opsional yang diberikan dalam data intent aplikasi navigasi dijelaskan di bagian ini.

Intent

Mendefinisikan maksud pengguna. Jika parameter ini tidak ditetapkan, maksud pengguna default dianggap sebagai navigation.

Kunci parameter: intent
Nilai yang mungkin:

  • navigation [nilai default] - Menggantikan tujuan dan memulai navigasi. Gunakan ini untuk kueri seperti buka x.
  • add_a_stop - Menambahkan perhentian sebagai tujuan berikutnya bersama dengan tujuan sebelumnya. Gunakan ini untuk kueri seperti tambahkan pemberhentian di x.
  • directions - Menampilkan petunjuk arah rute tanpa memulai navigasi. Gunakan ini untuk kueri seperti rute ke x.

Contoh: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop Interpretasi: Pengguna ingin menambahkan perhentian ke Bellevue Square, Bellevue, dengan koordinat saat ini [47.6, -122.2].

Hindari

Menentukan hal-hal yang harus dihindari dalam navigasi.

Kunci parameter: avoid
Nilai yang mungkin:

  • f - feri
  • h - jalan raya
  • t - tarif tol

Contoh: geo:0,0?q=googleplex&avoid=tf
Interpretasi: Pengguna ingin membuka Googleplex dengan menghindari jalan tol dan feri.

Mode perjalanan

Mode perjalanan mewakili metode transportasi yang ditentukan dalam kueri oleh pengguna.

Kunci parameter: mode
Nilai yang mungkin:

  • b - sepeda
  • d - berkendara
  • x - taksi
  • l - motor
  • r - transit
  • w - berjalan kaki

Contoh: geo:0,0?q=Googleplex&mode=r
Interpretasi: Pengguna ingin menuju Googleplex menggunakan transportasi umum.

Entri

Digunakan untuk mencatat sumber entri.

Nilai yang mungkin: asisten

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

Maksud penelusuran

Gunakan maksud penelusuran untuk menelusuri kueri dan menampilkan beberapa hasil di sepanjang rute saat mengemudi.

Format intent

Class Intent menggunakan format berikut untuk maksud penelusuran:

Kategori: android.intent.category.DEFAULT

Tindakan: android.intent.action.VIEW

Skema: geo

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

Perilaku aplikasi yang disarankan: Buka daftar lokasi yang sesuai dengan kueri pengguna.

Filter intent manifes

Deklarasikan format intent berikut dalam file manifes aplikasi Anda agar Gemini mengetahui bahwa aplikasi navigasi Anda dapat menerima intent penelusuran:

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

Parameter yang diberikan

Parameter berikut diharapkan tersedia dalam data niat penelusuran yang diberikan.

Kueri lokasi

Kueri lokasi adalah lokasi yang ditelusuri pengguna saat mengemudi. Kueri ini dapat tidak akurat atau sepanjang rute navigasi aktif.

Kunci parameter: q
Nilai: Istilah penelusuran pengguna, yang bisa berupa jenis lokasi seperti kedai kopi atau kampus, tetapi juga bisa memiliki penentu kuantitas seperti -di dekat saya atau -dengan rating terbaik.

Contoh: geo:0,0?q=restaurants+nearby
Interpretasi: Pengguna ingin menelusuri restoran di sekitar.

Intent tindakan kustom

Menggunakan maksud kustom untuk tindakan kustom seperti melaporkan kecelakaan dan mengakhiri navigasi. Jenis tindakan utama ditentukan oleh parameter kueri act. Anda dapat menetapkan parameter tambahan bergantung pada jenis tindakan.

Format intent

Class Intent menggunakan format berikut untuk intent tindakan kustom:

Kategori: android.intent.category.DEFAULT

Tindakan: android.intent.action.VIEW

Skema: geo.action

Contoh: geo.action:?act=report&accident_type=major

Filter intent manifes

Deklarasikan format intent berikut dalam file manifes aplikasi Anda agar Gemini mengetahui bahwa aplikasi navigasi Anda dapat menerima intent tindakan kustom.

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

Parameter yang diberikan

Parameter berikut diharapkan tersedia dalam data maksud Tindakan Kustom yang diberikan:

Jenis tindakan

Menentukan jenis tindakan kustom yang ingin dilakukan pengguna.

Kunci parameter: act

Contoh:

  • geo.action:?act=report_crash&accident_type=major
    Interpretasi: Pengguna ingin melaporkan kecelakaan berat.

  • geo.action:?act=mute
    Interpretasi: Pengguna ingin membisukan petunjuk suara.

  • geo.action:?act=exit_navigation
    Interpretasi: Pengguna ingin keluar dari navigasi saat ini.

Perilaku aplikasi yang disarankan: Penuhi tindakan yang diminta di aplikasi navigasi atau tampilkan pesan tindakan yang tidak didukung.

Gambar berikut menggambarkan contoh pasangan nilai kunci dalam kueri respons:

Alur data intent tindakan kustom

Gambar 2. Alur data intent tindakan kustom.

Pasangan nilai kunci:

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

Setiap tindakan kustom selalu memiliki parameter act sebagai kunci. Dalam kode contoh yang disebutkan di atas, beberapa tindakan dapat memiliki pasangan nilai kunci tambahan. Misalnya, act=report_crash mendukung kunci tambahan berikut: accident_type dan road_direction.

Kunci accident_type dapat mendukung dua nilai, minor dan major.

Nilai yang mungkin

Tabel mencantumkan kemungkinan nilai yang dapat diteruskan Gemini sebagai tindakan yang coba diselesaikan pengguna di aplikasi navigasi.

Nilai Deskripsi Kunci parameter opsional Nilai parameter opsional
allow_ferries Ubah preferensi rute untuk mengizinkan kapal feri.
allow_highways Ubah preferensi rute untuk mengizinkan jalan tol.
allow_tolls Ubah preferensi rute untuk mengizinkan jalan tol.
avoid_ferries Ubah preferensi rute untuk menghindari feri.
avoid_highways Ubah preferensi rute untuk menghindari jalan raya.
avoid_tolls Ubah preferensi rute untuk menghindari jalan tol.
distance_to_destination Menampilkan jarak ke tujuan.
distance_to_next_turn Tampilkan jarak ke belokan berikutnya.
eta Menampilkan PWT ke tujuan.
exit_navigation Keluar atau batalkan navigasi.
follow_mode Ubah tampilan peta ke mode ikuti.
go_back Kembali ke tindakan peta sebelumnya.
hide_satellite Ubah setelan peta untuk menyembunyikan info satelit.
hide_traffic Ubah setelan peta untuk menyembunyikan info lalu lintas.
mute Nonaktifkan panduan suara.
query_current_road Menampilkan jalan yang sedang dilalui pengguna.
query_destination Tampilkan tujuan.
query_next_turn Tunjukkan belokan berikutnya.
report_crash Melaporkan kecelakaan. accident_type minor
major
road_direction this_side
other_side
report_hazard Laporkan bahaya. 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 Melaporkan aktivitas polisi. road_direction this_side
other_side
report_road_closure Melaporkan penutupan jalan. road_closure_type partial
full
report_traffic Laporkan lalu lintas. traffic_type moderate
heavy
standstill
road_direction this_side
other_side
route_overview Tampilkan ringkasan rute.
show_alternates Tampilkan rute alternatif.
show_directions_list Tampilkan petunjuk belokan demi belokan.
show_satellite Menampilkan info satelit di peta.
show_traffic Tampilkan lalu lintas di peta.
time_to_destination Menampilkan PWT ke tujuan.
time_to_next_turn Menampilkan perkiraan waktu tiba di belokan berikutnya.
unmute Bunyikan panduan suara.

Mengambil status navigasi

Untuk membantu memastikan bahwa Gemini dapat memberikan informasi yang akurat dan real-time kepada pengguna saat mereka menanyakan status perjalanan mereka, aplikasi Anda harus memberikan metadata navigasi menggunakan layanan mobil NavigationManager. Untuk panduan penerapan, lihat Mengomunikasikan metadata navigasi.