为快捷方式添加功能

shortcuts.xml 中的功能可让您声明用户可以执行的操作类型 启动您的应用并直接执行特定任务所需的全部时间。

例如,Google 助理与应用有关的 Action 会利用相关功能让开发者 将应用内功能扩展到内置 intent (BII),让用户能够激活 以及使用语音指令控制这些功能功能包括 操作名称,以及定位应用内目的地的 intent 解析用户 intent。

在 shortcuts.xml 中定义能力

您可以在 Android 应用开发项目的 shortcuts.xml 资源文件中定义 capability 元素。如需定义 capability 元素,请执行以下操作: 以下:

  1. 按照创建shortcuts.xml 静态快捷方式
  2. 在您的功能中包含以下必需信息:

    • 功能名称:您希望应用支持的操作。请参阅 有关需要功能的功能的组件文档 定义。支持与应用有关的 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 中的额外数据。

将快捷方式与能力相关联

定义 capability 后,您可以通过将 静态或动态快捷方式。快捷方式如何与capability相关联 取决于要实现的功能以及 用户的请求。例如,当用户在您的健身跟踪信息中开始跑步时 “Hey Google, start a run in ExampleApp”(Hey Google,在 ExampleApp 中开始跑步)。Google 助理 可以使用快捷方式启动 capability 实例,该实例定义了一个 “run”的锻炼实体为 exercise.name 参数指定样式。

如需详细了解如何将快捷方式与与应用有关的 Action 相关联,请参阅应用 操作概览