shortcuts.xml
中的 capability 可让您声明用户启动应用时可以执行的操作类型,并直接执行特定任务。
例如,Google 助理的与应用有关的 Action 通过使用 capability 使开发者可将应用内功能扩展到内置 intent (BII),从而让用户能够使用语音指令激活和控制这些功能。功能包括
操作名称,以及定位应用内目的地的 intent
解析用户 intent。
在 shortcuts.xml 中定义能力
您可以在 Android 应用开发项目的 shortcuts.xml
资源文件中定义 capability
元素。如需定义 capability
元素,请执行以下操作:
- 按照创建
shortcuts.xml
静态快捷方式。 请在功能中提供以下必要信息:
功能名称:您希望应用支持的操作。请参阅 有关需要功能的功能的组件文档 定义。支持与应用有关的 Action 的语音命令会使用 BII
Action ID
功能名称,可以在 BII 参考文档中找到。例如:GET_THING
BII 会将其Action ID
列为actions.intent.GET_THING
。应用目的地:应用中启动相应操作的目的地 响应用户请求使用嵌套在
capability
中的intent
元素定义应用目的地。参数映射:每个
intent
可能包含要作为 intent 的extra
数据传递的参数。例如,每个与应用有关的 Action BII 都包括表示用户通常在触发 BII 的查询中提供的信息的字段。
以下示例演示了 shortcuts.xml
中 actions.intent.START_EXERCISE
的能力定义,该 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
中的 extra 数据进行传递。
将快捷方式与能力相关联
定义 capability 后,您可以通过将
静态或动态快捷方式。快捷方式如何与capability
相关联
取决于要实现的功能以及
用户的请求。例如,当用户向 Google 助理发出指令“Hey Google,在 ExampleApp 中开始跑步”,开始在您的健身跟踪应用中跟踪跑步情况时,Google 助理
可以使用快捷方式启动 capability
实例,该实例定义了一个
“run”的锻炼实体为 exercise.name
参数指定样式。
如需详细了解如何将快捷方式与与应用有关的 Action 相关联,请参阅应用 操作概览。