Google 助理使用三种不同的 intent 格式,您的导航应用可以支持这些格式。您可以在应用的清单中声明本页详述的 intent 过滤器,以实现互操作性并集成您的应用和 Google 助理。如需详细了解 intent,请参阅 Intent
。
Google 助理导航应用 Intent
类支持以下 intent:
- 导航 intent
- 搜索 intent
- 自定义操作 intent
图 1. 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
定义用户 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
解读:用户想在 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。
条目
用于记录条目的来源。
可能的值:助理
示例: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>
提供的参数
所提供的搜索意图数据中应包含以下参数。
位置查询
位置查询是指用户在驾车时搜索的地点。此查询可能不精确,或者沿着有效的导航路线。
参数键:q
值:用户的搜索字词,可以是地点类型(例如咖啡馆或学院),但也可以包含量词,例如 -near me(在我附近)或 -with best rating(评分最高)。
示例: 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>
提供的参数
提供的自定义 Action 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
|
开启语音导航。 |