内置意图 (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
的“从 Example 餐厅订餐”,您可以向用户展示名称与"Example Restaurant"
匹配的餐厅列表。
语言和区域设置支持
每个 App Action BII 的开发和测试支持的区域设置列在内置意图参考中。一些 BII 对开发者测试和用户从 Assistant 触发具有不同的区域设置支持。