1

我已经在我的应用程序中使用 SLICE 提供程序实现了 actions.intent.OPEN_APP_FEATURE。
这是我的actions.xml样子。

<action intentName="actions.intent.OPEN_APP_FEATURE">

        <fulfillment
            fulfillmentMode="actions.fulfillment.SLICE"
            urlTemplate="content://com.sa.actiondemo.slices.provider/{?featureName}">

            <parameter-mapping
                intentParameter="feature"
                required="true"
                urlParameter="featureName" />
        </fulfillment>

        <fulfillment
            fulfillmentMode="actions.fulfillment.DEEPLINK"
            urlTemplate="https://actiondemo.sa.com/{?featureName}">

            <parameter-mapping
                intentParameter="feature"
                urlParameter="featureName" />
        </fulfillment>

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

</action> 

在上面的代码中,FeatureEntitySet包含不同的功能,如慢跑、跑步、舞蹈等,我想在我的应用程序上打开这些功能,一切都可以通过 App Actions Test Tool 完美运行。

当我在 App Actions Test Tool 上创建预览时,它会使用默认功能值History创建预览。现在,当我用上面提到的其他值更改特征值History时,它在AATT上运行良好,但是在我的设备上使用语音命令或使用输入文本进行测试时,它不起作用。

我想再添加一件事,即创建预览的默认功能值历史记录也可以通过语音命令工作,但其他功能FeatureEntitySet不起作用。

有没有人遇到过这个问题或有人知道如何解决这个问题?

4

1 回答 1

1

我遇到了同样的问题,这是由于我的应用程序名称。确保您的应用名称足够独特,并且 Google 助理在您发音时拼写正确。此外,请确保您调用的功能与您的功能实体集匹配(或参数绑定,如果您使用新的快捷方式

在您的测试设备上构建并安装您的应用程序。然后在应用操作测试工具中,设置应用名称并单击创建预览。

然后在您的设备上打开 Google Assistant 应用并点击键盘图标,然后输入您的请求: open <feature name> in <app name>

如果这有效,语音命令也应该有效。您可以通过点击麦克风图标重复请求。当您与助手交谈时,请仔细检查拼写是否正确。

它是如何工作的?

在后台,Google Assistant 识别出第一个单词是“open”,因此它会查找应用名称和功能名称,然后将它们与数据库进行检查,以查看该元组是否与您手机上的某些内容匹配。这就是为什么正确识别功能和应用程序名称很重要的原因。

于 2021-11-01T03:17:17.403 回答