如何将 OPEN_APP_FEATURE 操作集成到 Android 应用程序中?

How to integrate the OPEN_APP_FEATURE action into an Android application?

我希望能够通过 Google 助理的语音命令启动我的 Android 应用("Start"、"Stop")的一些功能。

  1. 要从 Google 智能助理启动这些功能,接下来的步骤是什么?
  2. 此 Open App 功能支持哪些自然语言查询?

我已将 actions.intent.OPEN_APP_FEATURE 集成到我的应用程序中,并通过 Android Studio 中的应用程序操作测试工具对其进行了成功测试。

我的actions.xml:

<?xml version="1.0" encoding="utf-8"?>
<actions>
    <action intentName="actions.intent.OPEN_APP_FEATURE">
        <fulfillment urlTemplate="http://www.my-app.com/{?featureName}">
            <parameter-mapping
                intentParameter="feature"
                urlParameter="featureName" />
        </fulfillment>

        <parameter name="feature">
            <entity-set-reference entitySetId="FeatureEntitySet" />
        </parameter>
    </action>

    <entity-set entitySetId="FeatureEntitySet">
        <entity
            name="@string/start_capture"
            identifier="START" />
        <entity
            name="@string/stop_capture"
            identifier="STOP" />
    </entity-set>
</actions>

当询问 [​​=34=] 助理类似 "Open start from MyApp" 时,我期待与通过应用程序操作测试工具(打开应用程序的功能)进行测试时相同的行为,但是 Google Google 助理提供的是通用网页搜索结果。

根据 OPEN_APP_FEATURE 的文档:

Supported entities

You must specify entities for feature.

因此,您应该尝试使用 inline inventory. This allows you to tell Assistant what values to expect for that parameter. There is also an example of this in the sample app here.

feature 参数提供您的应用支持的值

文档肯定应该有示例查询以更好地指导如何测试它(看看我们是否可以更新)。

我相信您正在测试的内容应该有效 - “在 MyApp 上打开 [功能]”。如果它不是通过语音工作,而是通过测试工具工作,那么这可能是一个错误。唯一要检查的是测试工具中设置的调用名称与您正在测试的名称相匹配(上面的“MyApp”)。否则你可以提交错误 here.

事实证明,bug 阻止触发 Google 助手的 打开应用程序功能