2

我正在尝试通过响应应用操作意图来打开我的深层链接。我的actions.xml

<?xml version="1.0" encoding="utf-8"?>
<actions>
    <action intentName="actions.intent.RECORD_HEALTH_OBSERVATION" >
        <fulfillment urlTemplate="myapp://logMeasure{?measureName}">
            <parameter-mapping
                intentParameter="healthObservation.measuredProperty.name"
                urlParameter="measureName" />
        </fulfillment>
    </action>
</actions>

在清单中,我已将 MainActivity 声明为exported并带有深度链接和用于操作的元。

<activity
    android:name="com.myapp.MainActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data
            android:host="logMeasure"
            android:scheme="myapp"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

<meta-data
    android:name="com.google.android.actions"
    android:resource="@xml/actions"/>

我在 android studio 和我的手机上使用相同的 google 帐户正确登录。我的帐户可以访问 Google Play 开发者控制台,并且该应用程序已经发布。

这是带有配置的应用操作测试工具屏幕截图。 应用动作测试工具

当我单击运行时,助手打开,加载然后显示“未安装应用程序”的 toast。 助理无法打开我的深层链接

我错过了什么?

4

1 回答 1

3

一目了然,一切看起来都已正确配置。尽管我确实看到您的 lint 错误android:host- “主机匹配区分大小写,并且应该只使用小写字符”,所以您应该将其切换为小写。我不确定这是问题所在。

“App is not installed message”意味着 Assistant 无法找到可以满足从 actions.xml 构建的 Intent 的应用程序。我会检查两件事:

  1. 尝试通过命令行启动您的活动,adb以确保您intent-filters的设置正确,例如:
    adb shell am start -a android.intent.action.VIEW \
            -c android.intent.category.BROWSABLE \
            -d "myapp://logMeasure?measureName=test"
  1. 如果一切正常,请仔细检查处理此 Intent 的应用程序包名称(安装在您的测试设备上)是否与actions.xmlAndroid Studio 中的文件匹配。当 Assistant 调用您的 Intent 时,它还将指定包名称以确保另一个应用程序不会拦截和处理 Intent。您还可以adb通过将包名称添加到末尾来进行测试:
    adb shell am start -a android.intent.action.VIEW \
            -c android.intent.category.BROWSABLE \
            -d "myapp://logMeasure?measureName=test" \
            com.yourpackage.from.studio.project
于 2019-05-15T22:46:41.173 回答