在shortcuts.xml
中的功能允许您声明用户可以采取哪些类型的操作来启动您的应用并直接执行特定任务。
例如,Google 助理应用操作使用功能让开发者将应用内功能扩展到内置意图 (BII),让用户可以使用语音命令激活和控制这些功能。功能由操作的名称和一个intent
组成,该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
设置此 intent 的目标应用程序包。android:targetClass
字段指定目标活动:com.example.sampleApp.ExerciseActivity
。- intent
parameter
声明对 BII 参数exercise.name
的支持,以及如何将从用户收集的参数值作为intent
中的额外数据传递。
将快捷方式与功能关联
定义功能后,您可以通过将其关联的静态或动态快捷方式扩展其功能。快捷方式如何链接到capability
取决于正在实现的功能以及用户请求中包含的实际文字。例如,当用户通过询问助理“嘿 Google,在 ExampleApp 中开始跑步”来在您的健身跟踪应用中开始跑步时,助理可以使用快捷方式启动capability
的实例,该实例为exercise.name
参数定义有效的锻炼实体“跑步”。
有关将快捷方式关联到应用操作的更多信息,请参阅应用操作概述。