内置意图 (BII) 允许您的应用向 Google 表达其完成功能。通过在您的 shortcuts.xml 文件中声明功能并将意图参数映射到完成,您可以使 Google 助理能够响应查询启动您的应用到特定屏幕,以便用户可以完成任务。
内置意图按应用类别分组。每个类别代表用户经常希望在其应用上执行的一组常见任务。完整的可用 BII 列表、其参数和可用于测试的示例查询位于 内置意图参考 中。
许多 BII 具有特定的部署要求和建议。这些要求和建议有助于您的应用为用户提供最佳体验。
实现 BII 并处理意图参数
对于 App Actions,您在 shortcuts.xml 文件中声明功能并处理 BII 参数。要实现 BII 并处理其参数,请按照以下步骤操作
- 使用所选的 BII 声明
capability
。 - 为要添加的每个 BII 字段添加嵌套的
parameter
元素。- 如果您使用
targetClass
或targetPackage
,请使用您选择的名称将它们映射到 Android 意图extras
。 - 如果您使用深层链接 URL,请在 URL 模板的查询字符串中使用命名参数。
- 如果您使用
要处理 BII 参数,请将 BII 参数映射到您的 capability
中显式 Android 意图的相应参数。然后,您可以在应用中使用其值。您的应用不需要处理 BII 参数。但是,请尝试处理在 内置意图参考 中标记为“推荐”的数据字段。
您可以定义多个意图完成,每个完成都有自己的一组推荐参数。Google 会根据其从用户的查询中识别出的功能参数和意图中声明的功能参数选择合适的完成。
例如,actions.intent.START_EXERCISE
意图建议您的应用处理 exercise.name
BII 参数,但您可以在应用中实现 BII,而无需参数。您可能在想要在没有特定锻炼名称的情况下处理用户查询时这样做,例如“让示例应用开始跟踪锻炼。”
以下代码段在查询中未包含参数的情况下,回退到没有必需参数的完成
<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.START_EXERCISE">
<intent
android:action="android.intent.action.VIEW"
android:targetClass="com.example.myapplication.Activity1"
android:targetPackage="com.example.myapplication">
<parameter
android:name="exercise.name"
android:key="exerciseType"
android:required="true"
/>
</intent>
<intent
android:action="android.intent.action.VIEW"
android:targetClass="com.example.myapplication.Activity2">
</intent>
</capability>
</shortcuts>
Google 助理会尽力在将参数值返回到您的应用时为用户提供最相关的信息。例如,用户查询从示例餐厅的移动应用订购披萨并不总是包含位置。为了更好地为用户服务,助理可能会提供最近的示例餐厅的经纬度值。
作为一项附加要求,您不希望您的应用在事先未经用户确认的情况下直接执行修改用户现实世界状态的操作(例如转账、下单或发送消息)。
消除歧义
通过 <url-parameter>
或意图额外信息传递到您的应用的参数可能无法唯一标识要显示给用户的项目。在这种情况下,将参数值用作搜索参数,并将用户带到应用的搜索页面。他们可以消除歧义并选择正确的项目。
例如,如果用户的查询是“从示例餐厅订餐”,用于 BII ORDER_MENU_ITEM
,您可以向用户展示一个名称与 "示例餐厅"
相匹配的餐厅列表。
语言和区域设置支持
每个 App Action BII 支持的开发和测试语言列在 内置意图参考 中。一些 BII 在开发者测试和用户从 Assistant 触发时的语言支持存在差异。