實作導航應用程式意圖

Gemini 會使用三種不同格式的意圖,導航應用程式可支援這些意圖。如要達成互通性並整合應用程式和 Gemini,請在應用程式的資訊清單中宣告本頁面詳述的意圖篩選器。如要進一步瞭解意圖,請參閱Intent

Gemini 導覽應用程式 Intent 類別支援下列意圖:

  • 導覽意圖
  • 搜尋意圖
  • 自訂動作意圖

意圖資料流程

圖 1. 意圖資料流程。

意圖資料中的參數

意圖資料採用 URI 格式,內含根據您傳遞意圖的參數。資料中一律會提供部分參數。也就是說,您可預期這些值一律會是明確值。不過,選用參數不一定會在資料中設定值。詳情請參閱「資料測試」。

離線意圖

這個頁面列出的所有意圖都有離線變體。您可以將 .offline 附加至其架構,藉此區分這些項目。舉例來說,導覽意圖會使用 geo.offline 配置。 資訊清單中的這些意圖篩選器,代表應用程式支援離線執行這些動作。

使用導覽意圖,滿足使用者前往特定目的地的要求。目的地可以是單一地點 (位址),也可以是多個地點 (例如咖啡廳和加油站)。意圖資料會採用為每個意圖指定的 URI 格式。

意圖格式

Intent 類別的導覽應用程式意圖採用下列格式:

類別: android.intent.category.DEFAULT

動作:

  • Android Auto 和 Android Automotive OS: androidx.car.app.action.NAVIGATE
  • 其他板型規格: android.intent.action.NAVIGATE

配置: geo

這些檢查包括:

  • 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

建議的應用程式行為:開始導航至指定地點,或要求使用者從多個選項中選擇。

資訊清單意圖篩選器

在應用程式的資訊清單檔案中宣告下列意圖格式,讓 Gemini 知道導覽應用程式可以接收導覽意圖。

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

提供的參數

提供的導航應用程式意圖資料應包含下列參數。

位置查詢或地理座標

每個導覽意圖查詢都包含一或多個參數,視要求的資料類型而定:

  • 位置查詢

    使用者嘗試前往的地點。使用這項資料解析使用者的目的地。

    參數鍵: q
    值:使用者查詢的目的地。

    示例: geo:0,0?q=Golden+Gate+Bridge
    解讀:使用者想前往金門大橋

  • 地理座標 (經緯度)

    使用者導航時使用的特定座標。

    參數鍵:geo:lat,long
    值:使用者查詢的座標。

    範例: geo:1.1,2.2?mode=w&intent=navigation
    解讀:使用者想前往座標 (1.1, 2.2)。

自選參數

本節說明在導航應用程式意圖資料中提供的選用參數。

意圖

定義使用者意圖。如果未設定這個參數,系統會將預設使用者意圖視為 navigation

參數鍵: intent
可能的值:

  • navigation [預設值] - 取代目的地並開始導航。適用於「前往 x」等查詢。
  • add_a_stop:將停靠點新增為下一個目的地,並保留先前的目的地。適用於「在 x 新增停靠點」等查詢。
  • directions - 顯示路線指引,但不會開始導航。適用於「如何前往 x」等查詢。

示例: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop 解讀:使用者想在貝爾維尤的貝爾維尤廣場新增停靠點,目前座標為 [47.6, -122.2]。

避開

定義導覽時應避免的事項。

參數鍵: avoid
可能的值:

  • f - 渡輪
  • h - 高速公路
  • t - 過路費

示例: geo:0,0?q=googleplex&avoid=tf
解讀:使用者想前往 Googleplex,並避開收費路段和渡輪。

旅遊模式

交通方式代表使用者在查詢中指定的交通方式。

參數鍵: mode
可能的值:

  • b - bicycle
  • d - 開車
  • x - 計程車
  • l - 機車
  • r - 大眾運輸
  • w - 步行

範例: geo:0,0?q=Googleplex&mode=r
解讀:使用者想搭乘大眾運輸前往 Googleplex。

Entry

用於記錄進入來源。

可能的值:assistant

範例: geo:47.61594547836694,-122.20373173098756?entry=assistant

搜尋意圖

使用搜尋意圖搜尋查詢,並在行車路線上顯示多個結果。

意圖格式

Intent 類別的搜尋意圖格式如下:

類別: android.intent.category.DEFAULT

動作: android.intent.action.VIEW

配置: geo

範例: geo:0,0?q=restaurants+nearby

建議的應用程式行為:開啟符合使用者查詢條件的地點清單。

資訊清單意圖篩選器

在應用程式的資訊清單檔案中宣告下列意圖格式,讓 Gemini 知道導覽應用程式可以接收搜尋意圖:

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

提供的參數

提供的搜尋意圖資料應包含下列參數。

位置查詢

位置查詢是指使用者在開車時搜尋的位置。這項查詢可能不精確,或沿著使用中的導航路線。

參數鍵: q
值:使用者的搜尋字詞,可能是位置類型 (例如「咖啡店」或「大學」),也可能包含量詞 (例如「附近的」或「評分最高的」)。

範例: geo:0,0?q=restaurants+nearby
解讀:使用者想搜尋附近的餐廳。

自訂動作意圖

針對回報事故和結束導航等自訂動作,使用自訂意圖。主要動作類型是由 act 查詢參數定義。您可以根據動作類型設定其他參數。

意圖格式

Intent 類別的自訂動作意圖格式如下:

類別: android.intent.category.DEFAULT

動作: android.intent.action.VIEW

配置: geo.action

範例: geo.action:?act=report&accident_type=major

資訊清單意圖篩選器

在應用程式的資訊清單檔案中宣告下列意圖格式,讓 Gemini 知道導覽應用程式可以接收自訂動作意圖。

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

提供的參數

提供的自訂動作意圖資料中應包含下列參數:

動作類型

定義使用者想執行的自訂動作類型。

參數鍵: act

這些檢查包括:

  • geo.action:?act=report_crash&accident_type=major
    解讀:使用者想要回報重大事故。

  • geo.action:?act=mute
    解讀:使用者想將語音導引設為靜音。

  • geo.action:?act=exit_navigation
    解讀:使用者想結束目前的導覽。

建議的應用程式行為:在導航應用程式中完成要求執行的動作, 或顯示不支援的動作訊息。

下圖顯示回應查詢中的鍵/值組合範例:

自訂動作意圖資料流程

圖 2. 自訂動作意圖資料流程。

鍵/值組合:

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

每個自訂動作一律以 act 參數做為鍵。在上述範例程式碼中,部分動作可以有額外的鍵/值組合。舉例來說,act=report_crash 支援下列額外鍵:accident_typeroad_direction

accident_type 可支援兩個值,分別是 minormajor

可能的值

下表列出 Gemini 可能傳遞的值,代表使用者嘗試在導航應用程式中完成的動作。

說明 選用參數鍵 選用參數值
allow_ferries 變更路線偏好設定,允許渡輪。
allow_highways 變更路線偏好設定,允許行駛高速公路。
allow_tolls 變更路線偏好設定,允許收取通行費。
avoid_ferries 變更路線偏好設定,避開渡輪。
avoid_highways 變更路線偏好設定,避開高速公路。
avoid_tolls 變更路線偏好設定,避開收費路段。
distance_to_destination 顯示與目的地之間的距離。
distance_to_next_turn 顯示下一個轉彎的距離。
eta 顯示抵達目的地的預計時間。
exit_navigation 結束或取消導航。
follow_mode 將地圖檢視畫面變更為追蹤模式。
go_back 返回上一個地圖動作。
hide_satellite 變更地圖設定,隱藏衛星資訊。
hide_traffic 變更地圖設定,隱藏路況資訊。
mute 將語音導引設為靜音。
query_current_road 顯示使用者目前所在道路。
query_destination 顯示目的地。
query_next_turn 顯示下一個回合。
report_crash 回報當機問題。 accident_type minor
major
road_direction this_side
other_side
report_hazard 回報危險障礙物。 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 回報警察活動。 road_direction this_side
other_side
report_road_closure 回報道路封閉情形。 road_closure_type partial
full
report_traffic 回報路況。 traffic_type moderate
heavy
standstill
road_direction this_side
other_side
route_overview 顯示路線總覽。
show_alternates 顯示替代路線。
show_directions_list 顯示即時路線指示。
show_satellite 在地圖上顯示衛星資訊。
show_traffic 在地圖上顯示車流量。
time_to_destination 顯示抵達目的地的預計時間。
time_to_next_turn 顯示下一個轉彎處的預計到達時間。
unmute 取消語音導引的靜音設定。

擷取導航狀態

為確保 Gemini 在使用者詢問行程狀態時,能提供準確的即時資訊,應用程式必須使用 NavigationManager 車輛服務提供導航中繼資料。如需實作指引,請參閱「傳達導覽中繼資料」。