實作導航應用程式意圖

Google 助理使用三種不同格式的意圖,您的導航應用程式可以支援這三種格式。您可以在應用程式的資訊清單中宣告本頁所述的意圖篩選器,藉此實現互通性並整合應用程式和 Google 助理。如要進一步瞭解意圖,請參閱 Intent

助理導覽應用程式 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

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

資訊清單意圖篩選器

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

所有板型規格 (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 解讀:使用者想在 Bellevue Square, Bellevue 新增一個停靠站,目前座標為 [47.6, -122.2]。

避開

定義導航時應避免的物品。

參數鍵: avoid
可能的值:

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

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

旅遊模式

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

參數鍵: mode
可能的值:

  • b - 單車
  • d - 雲端硬碟
  • x - 計程車
  • l - 機車
  • r - 轉乘
  • w - 步行

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

項目

用於記錄輸入來源。

可能的值:assistant

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

搜尋意圖

使用搜尋意圖搜尋查詢,並在行駛期間顯示沿途的多個結果。

意圖格式

Intent 類別會使用以下格式搜尋意圖:

類別: android.intent.category.DEFAULT

動作: android.intent.action.VIEW

配置: geo

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

建議的應用程式行為:開啟符合使用者查詢的場所清單。

資訊清單意圖篩選器

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

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

提供的參數

下列參數應可在所提供的搜尋意圖資料中使用。

位置查詢

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

參數鍵: q
值:使用者的搜尋字詞,可以是位置類型,例如咖啡廳大學,但也可以包含量詞,例如-near me-with best rating

示例: 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

資訊清單意圖篩選器

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

<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

可能的值

下表列出 Google 助理可傳遞的可能值,這些值是使用者嘗試在導航應用程式中執行的動作。

說明 選用參數鍵 選用參數值
allow_ferries 變更路線偏好設定,允許搭乘渡輪。
allow_highways 變更路線偏好設定,允許使用高速公路。
allow_tolls 變更路線偏好設定,允許使用收費道路。
apply_electric_vehicle_connector_filter 只顯示與車輛連接器相符的電動車充電地點。
apply_electric_vehicle_fast_charging_filter 只顯示提供快速充電器的電動車充電地點。
apply_electric_vehicle_payment_filter 只顯示需要付費的電動車充電地點。
avoid_ferries 變更路線偏好設定,避開渡輪。
avoid_highways 變更路線偏好設定,避開高速公路。
avoid_tolls 變更路線偏好設定,避開收費路段。
clear_search_results 清除地圖上的搜尋結果。
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 顯示下一回合。
remove_electric_vehicle_connector_filter 移除符合車輛連接器的電動車充電地點篩選條件。
remove_electric_vehicle_fast_charging_filter 移除快速充電器的電動車充電地點篩選條件。
remove_electric_vehicle_payment_filter 移除需要付費的電動車充電站位置篩選條件。
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
resume_navigation 繼續導航。
route_overview 顯示路線總覽。
show_alternates 顯示替代路線。
show_directions_list 顯示即時路線指示。
show_satellite 在地圖上顯示衛星資訊。
show_traffic 在地圖上顯示車流量。
time_to_destination 顯示前往目的地的預估到達時間。
time_to_next_turn 顯示下一個轉彎的預估到達時間。
unmute 取消語音導引的靜音設定。