Google助手未在Android应用上获取新的URI

问题描述

我正在使用App Actions和BII(内置意图)集成Google助手。 问题是,当我尝试使用语音命令时,它没有打开预期的屏幕,而是打开了应用程序。.当我调试它时,传入的URI是不同的(旧的),但现在却是另外一个

Actions.Xml

<actions>
<action intentName="actions.intent.OPEN_APP_FEATURE">
    <!-- Each parameter can reference an entity set using a custom ID. -->
    <parameter name="feature">
        <entity-set-reference entitySetId="FeatureEntitySet" />
    </parameter>

    <fulfillment urlTemplate="myappname://speed test/open{?appFeature}">
        <parameter-mapping
            intentParameter="feature"
            urlParameter="appFeature" />
    </fulfillment>
</action>

<entity-set entitySetId="FeatureEntitySet">
    <entity
        name="speedtest"
        identifier="SPEED TEST" />
    <!--<entity
        name="second feature"
        identifier="FEATURETWO" />-->
</entity-set>

AndroidManifest

<activity
        android:name=".activities.SupportActivity"
        android:launchMode="singletop"
        android:screenorientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.broWSABLE" />
            <!-- Accepts URIs that begin with "myappname://speed test” -->
            <data
                android:host="speed test"
                android:scheme="myappname" />
        </intent-filter>
    </activity>

SupportActivity.java

private void handleIntent(Intent intent) {
    String appLinkAction = intent.getAction();
    Uri appLinkData = intent.getData();

    if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null) {
        String appFeature = appLinkData.getQueryParameter("appFeature");
        if (appFeature != null && appFeature.contains("SPEED TEST")) {
            //startActivity or do something
           
        }
    }
}

Google Assistant语音命令: “打开[我的应用名称]速度测试”,然后它将打开应用 “打开[myappname]支持”,然后在定义了意图过滤器的地方打开预期的活动

Uri字符串-myappname:// speed test / open?appFeature =提供语音命令“ Open [myappname] [support]”的支持 但是当我以“打开[myappname] [速度测试]”的方式发出语音命令时,它将启动该应用程序。 应用内操作测试工具可以使用,但不能与Google Assistant一起使用,语音和文本都不能使用。

解决方法

确保您使用的是3.4.2+ App Actions测试工具(AATT)。显示旧的URL表示没有使用最新的actions.xml更新预览。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...