借助 shortcuts.xml 中的功能,您可以声明用户启动应用时可以执行的操作类型,并直接执行特定任务。功能由操作名称和 intent 组成,后者定位到应用中可解析用户意图的目的地。
在 shortcuts.xml 中定义能力
您可以在 Android 应用开发项目的 shortcuts.xml 资源文件中定义 capability 元素。如需定义 capability 元素,请执行以下操作:
- 按照创建静态快捷方式中的说明创建
shortcuts.xml资源。 在功能中添加以下必需信息:
Capability 名称:您希望应用支持的操作。请参阅需要功能定义的特性的组件文档。
应用内目标页面:操作启动后会转到应用中的目标页面,以满足用户请求。使用嵌套在
capability中的intent元素定义应用目的地。参数映射:每个
intent都可能包含要作为 intent 的extra数据传递的参数。
以下示例演示了 shortcuts.xml 中针对 actions.intent.START_EXERCISE 的 capability 定义,该 BII 可让用户通过向 Google 助理发出语音指令,在健身应用中开始锻炼:
<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:targetPackage="com.example.sampleApp" android:targetClass="com.example.sampleApp.ExerciseActivity"> <parameter android:name="exercise.name" android:key="exerciseType"/> </intent> </capability> </shortcuts>
在上例中,<capability> android:name 属性引用了 START_EXERCISE BII。如果用户通过向 Google 助理发出指令“Ok Google,启动 ExampleApp,开始跑步”来调用此 BII,Google 助理会使用嵌套 intent 元素中提供的信息执行用户请求。此示例中的 intent 定义了以下详细信息:
android:targetPackage为此 intent 设置目标应用软件包。android:targetClass字段指定目的地 activity:com.example.sampleApp.ExerciseActivity。- intent
parameter声明支持 BII 参数exercise.name,并声明如何将从用户处收集的参数值作为intent中的额外数据进行传递。
将快捷方式与能力相关联
定义 capability 后,您可以通过将静态或动态快捷方式与 capability 相关联来扩展其功能。快捷方式与 capability 的关联方式取决于要实现的功能以及用户请求中包含的实际字词。例如,当用户通过向 Google 助理发出指令“Hey Google, start a run in ExampleApp”在您的健身跟踪应用中开始跑步时,Google 助理可以使用快捷方式启动 capability 的实例,该实例为 exercise.name 参数定义了有效的“跑步”锻炼实体。