Navigasyon uygulaması intent'lerini uygulama

Gemini, navigasyon uygulamanızın destekleyebileceği üç farklı amaç biçimi kullanır. Bu sayfada ayrıntılı olarak açıklanan intent filtrelerini uygulamanızın manifestinde belirterek birlikte çalışabilirlik elde edebilir, uygulamanızı ve Gemini'ı entegre edebilirsiniz. Amaçlar hakkında daha fazla bilgi edinmek için Intent başlıklı makaleyi inceleyin.

Gemini navigasyon uygulaması Intent sınıfı aşağıdaki amaçları destekler:

  • Gezinme amacı
  • Arama amacı
  • Özel işlem amacı

Amaç veri akışı

Şekil 1. Amaç verilerinin akışı.

Niyet verilerindeki parametreler

Intent verileri, ilettiğiniz intent'e dayalı parametreler içeren bir URI biçimini izler. Bazı parametreler her zaman verilerde sağlanır. Bu nedenle, bu parametrelerin her zaman açık bir değere sahip olmasını bekleyebilirsiniz. Ancak isteğe bağlı parametreler için verilerde her zaman bir değer ayarlanmaz. Daha fazla bilgi için Veri testi başlıklı makaleyi inceleyin.

Çevrimdışı intent'ler

Bu sayfada listelenen tüm amaçların çevrimdışı varyantları mevcuttur. Şemalarına .offline ekleyerek bunları ayırt edebilirsiniz. Örneğin, gezinme amaçlı sorguda geo.offline şeması kullanılır. Manifestteki bu amaç filtreleri, uygulamanın bu işlemleri çevrimdışı olarak destekleme özelliğini gösterir.

Kullanıcının belirli bir hedefe gitme isteğini karşılamak için gezinme amaçlı bir niyet kullanın. Bu hedef tek bir konum (adres) veya birden fazla konum (örneğin, kafeler ve benzin istasyonları) olabilir. Amaç verileri, her amaç için belirtilen bir URI biçimini izler.

Amaç biçimi

Intent sınıfı, gezinme uygulaması amaçlı işlemleri için aşağıdaki biçimi kullanır:

Kategori: android.intent.category.DEFAULT

İşlem:

  • Android Auto ve Android Automotive OS: androidx.car.app.action.NAVIGATE
  • Diğer form faktörleri: android.intent.action.NAVIGATE

Şema: geo

Örnekler:

  • 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

Önerilen uygulama davranışı: Belirtilen konuma gitme işlemi başlatılır veya kullanıcıdan birden fazla seçenek arasından seçim yapması istenir.

Manifest amaç filtreleri

Gemini'ın, gezinme uygulamanızın gezinme intent'lerini alabileceğini bilmesi için uygulamanızın manifesto dosyasında aşağıdaki intent biçimini tanımlayın.

Android Auto ve Android Automotive OS hariç tüm form faktörleri:

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

Android Auto ve 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>

Sağlanan parametreler

Sağlanan gezinme uygulaması amaç verilerinde aşağıdaki parametrelerin bulunması beklenir.

Konum sorgusu veya coğrafi koordinatlar

Her gezinme amaçlı sorgu, istenen verilerin türüne bağlı olarak bu parametrelerden birini veya her ikisini içerir:

  • Konum sorgusu

    Kullanıcının gitmeye çalıştığı konumu ifade eder. Bu verileri kullanarak kullanıcının hedefiyle ilgili sorunu çözün.

    Parametre anahtarı: q
    Değer: Kullanıcının sorguladığı hedef.

    Örnek: geo:0,0?q=Golden+Gate+Bridge
    Yorum: Kullanıcı, Golden Gate Köprüsü'ne gitmek istiyor.

  • Coğrafi koordinatlar (enlem ve boylam)

    Kullanıcının gezinme için kullandığı belirli koordinatları ifade eder.

    Parametre anahtarı: geo:lat,long
    Değer: Kullanıcının sorguladığı koordinatlar.

    Örnek: geo:1.1,2.2?mode=w&intent=navigation
    Yorum: Kullanıcı, (1.1, 2.2) koordinatlarına gitmek istiyor.

İsteğe bağlı parametreler

Geçiş uygulaması amaç verilerinde sağlanan isteğe bağlı parametreler bu bölümde açıklanmıştır.

Amaç

Kullanıcı niyetini tanımlar. Bu parametre ayarlanmazsa varsayılan kullanıcı amacı navigation olarak kabul edilir.

Parametre anahtarı: intent
Olası değerler:

  • navigation [varsayılan değer]: Hedefin yerini alır ve navigasyonu başlatır. X'e git gibi sorgular için bunu kullanın.
  • add_a_stop: Durağı, önceki hedeflerle birlikte bir sonraki hedef olarak ekler. x konumuna durak ekle gibi sorgular için bunu kullanın.
  • directions: Navigasyonu başlatmadan rota tariflerini gösterir. Bu işlevi x adresine yol tarifi gibi sorgular için kullanın.

Örnek: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop Yorum: Kullanıcı, Bellevue Square, Bellevue'ye [47.6, -122.2] koordinatlarını kullanarak durak eklemek istiyor.

Kullanılmasın

Gezinmede kaçınılması gerekenleri tanımlar.

Parametre anahtarı: avoid
Olası değerler:

  • f - feribotlar
  • h - otoyollar
  • t - geçiş ücretleri

Örnek: geo:0,0?q=googleplex&avoid=tf
Yorum: Kullanıcı, Googleplex'e gitmek için ücretli yolları ve feribotları kullanmak istemiyor.

Ulaşım şekli

Seyahat şekli, kullanıcı tarafından sorguda belirtilen ulaşım yöntemini ifade eder.

Parametre anahtarı: mode
Olası değerler:

  • b - bisiklet
  • d - araba ile
  • x - taksi
  • l - iki tekerlekli araç
  • r - transit
  • w - yürüme

Örnek: geo:0,0?q=Googleplex&mode=r
Yorum: Kullanıcı, toplu taşıma araçlarını kullanarak Googleplex'e gitmek istiyor.

Giriş

Giriş kaynağını kaydetmek için kullanılır.

Olası değerler: assistant

Örnek: geo:47.61594547836694,-122.20373173098756?entry=assistant

Arama amacı

Bir sorguyu aramak ve sürüş sırasında rota boyunca birden fazla sonuç göstermek için arama amacını kullanın.

Amaç biçimi

Intent sınıfı, arama amaçları için aşağıdaki biçimi kullanır:

Kategori: android.intent.category.DEFAULT

İşlem: android.intent.action.VIEW

Şema: geo

Örnek: geo:0,0?q=restaurants+nearby

Önerilen uygulama davranışı: Kullanıcı sorgusuna uygun konumların listesini açın.

Manifest amaç filtreleri

Gemini'ın, gezinme uygulamanızın arama intentlerini alabileceğini bilmesi için uygulamanızın manifest dosyasında aşağıdaki intent biçimini beyan edin:

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

Sağlanan parametreler

Sağlanan arama amacı verilerinde aşağıdaki parametrelerin bulunması beklenir.

Konum sorgusu

Konum sorgusu, kullanıcının sürüş sırasında aradığı konumdur. Bu sorgu, kesin olmayabilir veya etkin bir navigasyon rotası üzerinde olabilir.

Parametre anahtarı: q
Değer: Kullanıcının arama terimi. Bu terim, kahve dükkanı veya üniversite gibi bir konum türü olabileceği gibi -yakınımda veya -en iyi puanlı gibi niteleyiciler de içerebilir.

Örnek: geo:0,0?q=restaurants+nearby
Yorum: Kullanıcı, yakındaki restoranları aramak istiyor.

Özel işlem amacı

Kaza bildirme ve navigasyonu sonlandırma gibi özel işlemler için özel amaç kullanın. Ana işlem türü, act sorgu parametresiyle tanımlanır. İşlem türüne bağlı olarak ek parametreler ayarlayabilirsiniz.

Amaç biçimi

Intent sınıfı, özel işlem amacı için aşağıdaki biçimi kullanır:

Kategori: android.intent.category.DEFAULT

İşlem: android.intent.action.VIEW

Şema: geo.action

Örnek: geo.action:?act=report&accident_type=major

Manifest amaç filtreleri

Gemini'a, gezinme uygulamanızın özel işlem intent'lerini alabileceğini bildirmek için uygulamanızın manifesto dosyasında aşağıdaki intent biçimini tanımlayın.

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

Sağlanan parametreler

Sağlanan Özel İşlem amaç verilerinde aşağıdaki parametrelerin bulunması beklenir:

İşlem türü

Kullanıcının gerçekleştirmek istediği özel işlem türünü tanımlar.

Parametre anahtarı: act

Örnekler:

  • geo.action:?act=report_crash&accident_type=major
    Yorum: Kullanıcı, büyük bir kaza bildirmek istiyor.

  • geo.action:?act=mute
    Yorum: Kullanıcı, sesli talimatları kapatmak istiyor.

  • geo.action:?act=exit_navigation
    Yorumlama: Kullanıcı, mevcut gezinmeden çıkmak istiyor.

Önerilen uygulama davranışı: Gezinme uygulamasında istenen işlemi gerçekleştirin veya desteklenmeyen işlem mesajı gösterin.

Aşağıdaki şekilde, yanıttaki anahtar/değer çiftlerine örnek verilmiştir sorgu:

Özel işlem amaç verileri akışı

Şekil 2. Özel işlem amaç verileri akışı.

Anahtar/değer çifti:

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

Her özel işlemin anahtar olarak her zaman bir act parametresi vardır. Yukarıda belirtilen örnek kodda, bazı işlemlerin ek anahtar/değer çiftleri olabilir. Örneğin, act=report_crash aşağıdaki ek anahtarları destekler: accident_type ve road_direction.

accident_type anahtarı, minor ve major olmak üzere iki değeri destekleyebilir.

Olası değerler

Tabloda, kullanıcının gezinme uygulamasında yerine getirmeye çalıştığı işlem olarak Gemini'ın iletebileceği olası değerler listelenmektedir.

Değer Açıklama İsteğe bağlı parametre anahtarları İsteğe bağlı parametre değerleri
allow_ferries Feribotlara izin vermek için rota tercihini değiştirin.
allow_highways Rota tercihini otoyollara izin verecek şekilde değiştirin.
allow_tolls Ücretli geçişlere izin vermek için rota tercihini değiştirin.
avoid_ferries Feribotları kullanmamak için rota tercihini değiştirme
avoid_highways Otoyolları kullanmamak için rota tercihini değiştirme
avoid_tolls Ücretli geçişlerden kaçınmak için rota tercihini değiştirin.
distance_to_destination Varış noktasına olan mesafeyi gösterir.
distance_to_next_turn Bir sonraki dönüşe olan mesafeyi göster.
eta Varış noktasına TVS'yi göster.
exit_navigation Navigasyondan çıkma veya navigasyonu iptal etme
follow_mode Harita görünümünü takip moduna değiştirin.
go_back Önceki harita işlemine geri dönün.
hide_satellite Uydu bilgilerini gizlemek için harita ayarını değiştirin.
hide_traffic Trafik bilgilerini gizlemek için harita ayarını değiştirin.
mute Sesli yardımı kapatma
query_current_road Kullanıcının bulunduğu yolu göster.
query_destination Hedefin ne olduğunu göster.
query_next_turn Sonraki dönüşün ne olduğunu göster.
report_crash Kilitlenmeleri bildirme accident_type minor
major
road_direction this_side
other_side
report_hazard Tehlikeli durumları bildirin. 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 Polis operasyonlarını bildirin. road_direction this_side
other_side
report_road_closure Kapalı yolları bildirin. road_closure_type partial
full
report_traffic Trafiği bildirme traffic_type moderate
heavy
standstill
road_direction this_side
other_side
route_overview Rotaya genel bakışı gösterin.
show_alternates Alternatif rotaları gösterin.
show_directions_list Adım adım talimatları göster.
show_satellite Uydu bilgilerini haritada gösterir.
show_traffic Haritada trafiği gösterin.
time_to_destination Hedefe TVS'yi göster.
time_to_next_turn Bir sonraki dönüşe TVS'yi göster.
unmute Sesli yardımı açın.

Navigasyon durumunu alma

Gemini'ın kullanıcılara seyahat durumlarıyla ilgili soru sorduklarında doğru ve anlık bilgiler vermesini sağlamak için uygulamanızın NavigationManager araba hizmetini kullanarak gezinme meta verileri sağlaması gerekir. Uygulama yönergeleri için Gezinme meta verilerini iletme başlıklı makaleyi inceleyin.