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=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
建議的應用程式行為:開始導航至指定地點,或要求使用者從多個選項中選擇。
資訊清單意圖篩選器
在應用程式的資訊清單檔案中宣告下列意圖格式,讓 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- bicycled- 開車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_type 和 road_direction。
鍵 accident_type 可支援兩個值,分別是 minor 和 major。
可能的值
下表列出 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
車輛服務提供導航中繼資料。如需實作指引,請參閱「傳達導覽中繼資料」。