应用操作允许用户通过询问 Google 助理或使用助理建议的 Android 快捷方式来启动您的 Android 应用中的功能。以下是在 Android 应用中扩展应用操作的主要步骤
- 确定要触发的应用内功能及其匹配的内置意图 (BII)。
- 提供 BII 的执行详细信息。
- 将应用操作的快捷方式推送到助理。
- 在测试设备上预览您的应用操作。
- 创建应用的测试版本。
- 请求应用操作审核和部署。
可选地,您可以定义要提供给助理的动态快捷方式,以便它可以向您的用户建议这些快捷方式。按照应用操作代码实验室,使用示例应用创建应用操作。
要求
在开始开发应用操作之前,请确保您和您的应用满足以下要求
- 您必须拥有一个可以访问Google Play Console的 Google 帐户。
- 您的应用必须发布到 Google Play 商店,因为应用操作仅适用于发布到该商店的应用。此外,请确保您的应用并非旨在在工作资料中使用,因为托管 Google Play 不支持应用操作。
- 您需要一个物理设备或虚拟设备来在上面测试您的应用操作。
- 您需要最新版本的Android Studio。
- 您必须使用相同的 Google 帐户来登录 Android Studio、测试设备上的 Google 应用以及 Google Play Console。
- 您必须在测试设备上设置助理,并通过在主页按钮上执行触摸并按住操作来测试它。
将内置意图与应用功能匹配
确定 Android 应用中用户可能希望使用语音请求跳转到的功能,并查看内置意图参考,以找到适合您用例的 BII。BII 对用户执行任务的查询进行建模,因此请查找与应用中的关键功能和用户流程匹配的 BII。
几乎所有 Android 应用都可以使用常见的 BII,例如使用actions.intent.GET_THING
BII 将应用内搜索扩展到助理,或通过实施actions.intent.OPEN_APP_FEATURE
BII 允许用户用语音启动特定的应用功能。
还有一些 BII 支持垂直或特定于类别的用例。例如,锻炼应用可能会使用actions.intent.START_EXERCISE
BII。
为了确保良好的用户体验并避免可能的审批延迟,请确保您实施的每个 BII 都与应用内功能相关。
应用操作通过从 Assistant 应用启动 Android 意图来工作,以便将用户直接带到应用中的特定内容。您可以定义意图来显式启动活动显式,方法是指定targetClass
和targetPackage
字段。如果您的应用已实现Android 深层链接 URL,则可以选择配置意图以使用深层链接进行执行。有关更多详细信息,请参阅测试您的活动深层链接部分。
提供内置意图的执行详细信息
构建应用操作的大部分工作是声明应用 Android 应用的功能 在shortcuts.xml
资源文件中,您可以在其中指定所选的 BII 及其相应的执行。BII 对用户查询的任务进行建模,而执行意图则为 Assistant 提供有关如何执行任务的信息。
在您的shortcuts.xml
文件中,BII 表示为<capability>
元素,每个执行表示为<intent>
元素
<shortcuts>
<capability android:name="actions.intent.START_EXERCISE">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.app"
android:targetClass="com.example.app.browse">
<parameter
android:name="exercise.name"
android:key="exercise_name">
</parameter>
</intent>
</capability>
对于大多数 BII,您会根据schema.org实体从用户查询中提取意图参数。然后,您的应用使用这些 BII 参数将用户引导至选定的功能。例如,前面的代码将exercise.name
BII 参数映射到exercise_name
Android intent
参数。
如果您使用深层链接执行操作,则可以使用urlTemplate
字段来定义 Assistant 生成的深层链接 URL
<shortcuts>
<capability android:name="actions.intent.START_EXERCISE">
<intent android:action="android.intent.action.VIEW">
<url-template android:value="myexerciseapp://start{?exercise_name}" />
<parameter android:name="exercise.name"
android:key="exercise_name"
android:mimeType="text/*">
</parameter>
</intent>
</capability>
</shortcuts>
有关将应用操作添加到shortcuts.xml
文件的详细信息,请参阅创建shortcuts.xml
。该页面还描述了如何指定应用期望的参数值。
实现 GET_THING 内置意图
如果您的应用具有搜索功能,则需要为该功能实现actions.intent.GET_THING
BII。当用户发出类似“嘿 Google,在示例应用中搜索示例内容”之类的查询时,Assistant 就可以将用户转发到应用的搜索功能以获取应用内结果。
在您的shortcuts.xml
文件中,为actions.intent.GET_THING
BII 实现一个<capability>
,就像您实现任何其他 BII一样。您可以为GET_THING
使用多个执行,只要您提供至少一个将用户查询传递到应用搜索功能的执行即可。
以下是shortcuts.xml
中添加actions.intent.GET_THING
BII 的示例
<capability android:name="actions.intent.GET_THING">
<intent
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.MySearchActivity">
<parameter android:name="thing.name" android:key="query" />
</intent>
</capability>
在您的搜索Activity
中,从intent
的额外数据中提取搜索查询,并将其传递到应用的搜索功能。在前面的代码中,作为query
键传递的搜索查询映射到"thing.name"
BII 参数。然后,使用查询执行搜索并在用户界面中显示结果。
可选:将应用操作的快捷方式推送到 Assistant
定义操作的功能后,用户可以通过说类似“嘿 Google,在示例应用上订购披萨”之类的话来启动您的操作。Assistant 可以适时向用户推荐操作的 Android 快捷方式,让他们发现并重播您的操作。Assistant 可以推荐动态和静态快捷方式。
要将动态快捷方式推送到 Assistant,请使用 Google 快捷方式集成库。此 Jetpack 库使 Assistant 能够接收您的快捷方式并在适当的时间向用户推荐。
有关更多详细信息,请参阅将动态快捷方式推送到 Assistant。
预览您的应用操作
在开发和测试期间,请使用适用于 Android Studio 的Google Assistant 插件来测试应用操作是否有效。该插件会在 Assistant 中为您的 Google 帐户创建应用操作的预览。使用测试工具,您可以通过提供您期望从用户那里收到的输入参数的 BII 来在物理测试设备或模拟器上测试您的执行。
在预览应用操作时,您可以通过设备上的语音触发查询。此功能仅适用于应用操作的 BII 参考中列出的查询。仅将语音触发用于演示,而不是用于常规测试。
在将应用提交审核之前,请使用 Google Play 控制台的开发者工具在草稿模式下测试您的应用。有关使用 Google Play 控制台部署应用草稿的更多信息,请参阅准备和发布版本。
创建测试版本
准备好使用其他测试人员测试您的应用操作时,请创建应用的内部或封闭测试版本。默认情况下,您的内部和封闭版本测试人员可以访问已审核和批准的应用操作。
要授予所有应用操作(包括未批准的操作)的测试访问权限,请指示您的测试人员加入应用操作开发计划 Google 群组。该群组的成员可以访问封闭和内部测试版本中的所有应用操作,而无需使用应用操作测试工具创建预览。加入群组后,可能需要最多 3 个小时才能获得访问权限。
请求应用操作审核和部署
在经过审核和批准之前,已发布应用或开放测试版本的用户无法使用应用操作。应用操作审核不会影响您的 Android 应用在 Google Play 中的审核和部署状态。即使您的应用提交获得批准并发布到 Play 商店,您的shortcuts.xml
也可能正在接受 Google 的审核。在该审核也获得批准之前,应用操作对您的最终用户无效。
部署应用后,应用操作将保持激活状态。但是,重新部署的版本需要接受 Google 的审核。如果新版本无法正常工作或包含政策违规行为,Google 有权停用应用的应用操作。
要提交应用操作以供审核,请执行以下操作
在 Google Play 控制台中接受应用操作服务条款(**高级设置 > 应用操作**)
上传您的应用(包含
shortcuts.xml
)到 Google Play 控制台,就像发布应用一样。将应用上传到 Play 控制台后,Google 会通过 Play 控制台帐户中的电子邮件与您联系,提供有关应用操作审核状态的更多信息。您还可以联系 Assistant 开发者支持,询问有关应用操作审核状态的问题。在联系表单中,提供您的应用软件包 ID,并在“我们如何帮助您?”选择框中选择“应用操作审核”。
可选:测试您的活动深层链接
要使用深层链接通过应用操作启动Activity
,必须使用深层链接 URL 设置Activity
并在 Android 应用清单中具有相应的意图过滤器。
要测试您的活动是否可访问以及是否可以使用应用操作通过深层链接触发,请运行以下adb
命令
$ adb shell am start -a android.intent.action.VIEW -d "AppLinksURL"
例如
$ adb shell am start -a android.intent.action.VIEW -d "https://www.example.com/deeplink"
如果您的活动未通过adb
命令正确启动,请检查以下内容
- 在应用清单文件中,活动具有
android:exported=true
,因此可以使用 Google Assistant 的意图启动它。 - 如果使用应用链接 URL,请按照处理 Android 应用链接中的所有步骤操作。
应用操作政策
应用操作必须符合特定政策,以帮助确保触发应用操作的用户获得预期的体验。在提交应用之前,请查看这些政策,以提供最佳用户体验并避免 Play 商店审核延迟或拒绝。
将用户引导至用户预期的内容
应用操作内置意图 (BII) 和/或参数必须仅将用户引导至相关且用户预期的操作。这可能包括应用内内容、网站内容或切片或窗口小部件中显示的信息,只要用户期望获得此体验即可。
例如,
START_EXERCISE
内置意图 (BII) 的实现可以帮助用户启动某种类型的锻炼,例如跑步或游泳。此政策的唯一例外是当您的OPEN_APP_FEATURE
BII 将用户引导至应用的主屏幕时。实施相关的应用操作内置意图 (BII)
实施的内置意图 (BII) 必须与应用的内容和功能直接相关。
例如,如果您的应用属于通信类 Play 商店类别,请勿实施
START_EXERCISE
BII,该内置意图建议用于健康与健身类别的应用。实施相关的自定义意图
为 自定义意图 定义的查询与应用的内容和功能相关。违反此政策的一个潜在示例是,为 Play 商店中的交通类别应用创建意图
custom.action.intent.GET_RECIPE
,并将其关联查询模式设置为“显示墨西哥卷饼食谱”。