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

8

我希望能够通过Google助手的语音命令启动我的Android应用程序中的一些功能(“启动”,“停止”)。

  1. 要能够从Google助手启动这些功能,下一步是什么?
  2. 该开放应用程序功能支持哪些自然语言查询?

我已将 actions.intent.OPEN_APP_FEATURE 集成到我的应用程序中,并通过Android Studio中的App Actions测试工具成功测试过。

我的 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>

当我问Google助手类似“从我的应用程序打开起始页”之类的问题时,我期望得到与通过App Actions测试工具进行测试时相同的行为(打开应用程序的特定功能),但是Google助手提供了通用的Web结果。
2个回答

4

原来有一个漏洞导致 Google 助手无法触发 打开应用程序功能


1
根据OPEN_APP_FEATURE的文档:

支持的实体

您必须为feature指定实体。

因此,您应该尝试使用inline inventory提供应用程序支持的feature参数值。这使您可以告诉Assistant该参数的预期值。示例应用程序here中也有一个示例。
文档应该一定要包含示例查询,以更好地指导如何测试(我们会看看是否可以更新文档)。

我相信你正在测试的应该可以正常工作 - "在MyApp上打开[功能]". 如果语音无法工作但是通过测试工具可以工作,那可能是一个bug。唯一需要检查的是测试工具中设置的调用名称是否与你正在测试的名称匹配(上面的"MyApp")。否则,你可以在这里提交一个bug报告。


谢谢@AdamK,但我在这份文档中找不到我在为“feature”指定内联库存时可能出错的地方。而且我仍然没有看到文档中说明哪个自然语言查询会触发此操作的内容。 - Jérôme Pietri
1
是的,文档中肯定应该有示例查询。让我看看示例查询。我相信你正在测试的应该可以工作 - “在MyApp上打开[功能]”。如果语音不起作用但通过测试工具可以工作,那可能是一个错误。唯一需要检查的是测试工具中设置的调用名称是否与您正在测试的名称匹配(如上面的“MyApp”)。否则,您可以在此处提交错误: https://issuetracker.google.com/issues/new?component=617864&template=1257475 - AdamK
1
@JérômePietri - 确认通过语音触发似乎已经失效。您可以在我发送的链接上提交错误报告,但我们已经在进一步调查此问题了。 - AdamK
2
再次感谢@AdamK。与此同时,已经提交了一个错误报告:https://issuetracker.google.com/issues/135714718 - Jérôme Pietri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接