shortcuts.xml 中的功能允许您声明用户可以采取哪些类型的操作来启动您的应用并直接执行特定任务。
例如,Google 助理应用操作使用功能让开发者能够将应用内功能扩展到内置意图 (BII),从而让用户可以使用语音命令激活和控制这些功能。一项功能包含操作的名称以及针对应用中用于解析用户意图的目标位置的 intent。
在 shortcuts.xml 中定义功能
您在 Android 应用开发项目中的 shortcuts.xml 资源文件中定义 capability 元素。要定义 capability 元素,请执行以下操作:
- 按照创建静态快捷方式中的说明创建
shortcuts.xml资源。 在功能中包含以下必要信息:
以下示例展示了 shortcuts.xml 中针对 actions.intent.START_EXERCISE 的功能定义,该 BII 允许用户使用助理的语音命令在健身应用中开始锻炼:
<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,在 ExampleApp 中开始跑步”来调用此 BII,助理会使用嵌套的 intent 元素中提供的信息来满足用户请求。此示例中的 intent 定义了以下详细信息:
android:targetPackage设置此意图的目标应用包。android:targetClass字段指定目标 Activity:com.example.sampleApp.ExerciseActivity。- 意图
parameter声明支持 BII 参数exercise.name,以及如何将从用户收集到的参数值作为额外数据传递到intent中。
将快捷方式与功能关联
定义功能后,可以通过将静态或动态快捷方式与其关联来扩展其功能。快捷方式如何链接到 capability 取决于正在实现的功能以及用户请求中包含的实际词语。例如,当用户通过向助理说“嘿 Google,在 ExampleApp 中开始跑步”来开始在您的健身跟踪应用中跑步时,助理可以使用快捷方式启动定义了有效的“跑步”运动实体以用于 exercise.name 参数的 capability 实例。
有关将快捷方式与应用操作关联的详细信息,请参阅应用操作概览。