Google 助理使用三种不同的 Intent 格式,您的导航应用可以支持这些格式。您可以通过在应用的清单中声明本页详细介绍的 Intent 过滤器,实现互操作性并将您的应用与 Google 助理集成。要了解有关 Intent 的更多信息,请参阅 Intent
。
助理导航应用 Intent
类支持以下 Intent
- 导航 Intent
- 搜索 Intent
- 自定义操作 Intent
图 1. Intent 数据流。
Intent 数据中的参数
Intent 数据遵循 URI 格式,其中包含基于您正在传递的 Intent 的参数。某些参数总是随数据提供。这意味着您可以预期它们始终具有明确的值。然而,可选参数并非总是具有数据中设置的值。有关更多信息,请参阅数据测试。
离线 Intent
本页列出的所有 Intent 都提供其离线变体。您可以通过在其方案后附加 .offline
来区分它们。例如,导航 Intent 使用 geo.offline
方案。清单中的这些 Intent 过滤器表示应用支持这些离线操作的能力。
导航 Intent
使用导航 Intent 满足用户导航到特定目的地的请求。此目的地可以是单个位置(地址)或多个位置(例如,咖啡馆和加油站)。Intent 数据遵循为每个 Intent 指定的 URI 格式。
Intent 格式
Intent
类为导航应用 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
建议的应用行为: 导航到指定位置开始或提示用户从多个选项中选择。
清单 Intent 过滤器
在您应用的清单文件中声明以下 Intent 格式,以便 Google 助理知道您的导航应用可以接收导航 Intent。
除 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>
提供的参数
以下参数预计在提供的导航应用 Intent 数据中可用。
位置查询或地理坐标
每个导航 Intent 查询都包含一个或两个这些参数,具体取决于请求的数据类型
位置查询
指用户尝试导航到的位置。使用此数据解析用户的目的地。
参数键:
q
值: 用户的查询目的地。示例:
geo:0,0?q=Golden+Gate+Bridge
解释: 用户希望导航到金门大桥。地理坐标(纬度和经度)
指用户用于导航的特定坐标。
参数键:
geo:lat,long
值: 用户的查询坐标。示例:
geo:1.1,2.2?mode=w&intent=navigation
解释: 用户希望导航到坐标 (1.1, 2.2)。
可选参数
本节介绍导航应用 Intent 数据中提供的可选参数。
Intent
定义用户意图。如果未设置此参数,则默认用户意图被视为 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] 处添加一个到 Bellevue Square, Bellevue 的停车点。
避免
定义导航中要避免的事项。
参数键: 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
使用搜索 Intent 搜索查询并在驾驶过程中沿途显示多个结果。
Intent 格式
Intent
类使用以下格式的搜索 Intent
类别: android.intent.category.DEFAULT
操作: android.intent.action.VIEW
方案: geo
示例: geo:0,0?q=restaurants+nearby
建议的应用行为: 打开符合用户查询的位置列表。
清单 Intent 过滤器
在您应用的清单文件中声明以下 Intent 格式,以便 Google 助理知道您的导航应用可以接收搜索 Intent
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
提供的参数
以下参数预计在提供的搜索 Intent 数据中可用。
位置查询
位置查询是用户在驾驶时搜索的位置。此查询可能不精确或沿活动导航路线进行。
参数键: q
值: 用户的搜索词,可以是咖啡馆或大学等位置类型,也可以包含-我附近或-评分最高等量词。
示例: geo:0,0?q=restaurants+nearby
解释: 用户希望搜索附近的餐馆。
自定义操作 Intent
使用自定义 Intent 执行自定义操作,例如报告事故和结束导航。主要操作类型由 act
查询参数定义。您可以根据操作类型设置其他参数。
Intent 格式
Intent
类使用以下格式的自定义操作 Intent
类别: android.intent.category.DEFAULT
操作: android.intent.action.VIEW
方案: geo.action
示例: geo.action:?act=report&accident_type=major
清单 Intent 过滤器
在您应用的清单文件中声明以下 Intent 格式,以告知 Google 助理您的导航应用可以接收自定义操作 Intent。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo.action" />
</intent-filter>
提供的参数
以下参数预计在提供的自定义操作 Intent 数据中可用
操作类型
它定义了用户想要在导航应用上执行的自定义操作的类型。
参数键: act
示例
geo.action:?act=report_crash&accident_type=major
解释: 用户希望报告一起重大事故。geo.action:?act=mute
解释: 用户希望静音语音指示。geo.action:?act=exit_navigation
解释: 用户希望退出当前导航。
建议的应用行为: 在导航应用上执行请求的操作或显示不支持的操作消息。
下图描述了响应查询中键值对的示例
图 2. 自定义操作 Intent 数据流。
键值对
"act": "report_crash"
"road_direction": other_side"
每个自定义操作始终将 act
参数作为键。在上述示例代码中,某些操作可以有额外的键值对。例如,act=report_crash
支持这些额外的键:accident_type
和 road_direction
。
键 accident_type
可以支持两个值,minor
和 major
。
可能的值
下表列出了 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
|
取消静音语音引导。 |