我正在尝试使用 Android App Links 打开一个 Activity。Activity 位于动态功能模块中,位于Google 的示例项目中。
我还没有将项目上传到 Google Play,所以我正在使用调试构建类型进行测试,运行配置包括 APK 的所有动态功能。
我要测试的代码是:
private fun openUrl(url: String) { // url will be "http://uabsample-405d6.firebaseapp.com/url"
var intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
intent.setPackage(packageName)
intent.addCategory(Intent.CATEGORY_BROWSABLE)
startActivity(intent)
}
但是当我尝试导航到 URL 功能时,Android 会显示应用程序选择器对话框,其中两次显示相同的应用程序:
你知道为什么会这样吗?这是预期的行为吗?
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dist="http://schemas.android.com/apk/distribution"
package="com.android.samples.instantdynamicfeatures">
<dist:module
dist:instant="true"
dist:onDemand="false"
dist:title="@string/title_url_instant_module">
<dist:fusing dist:include="true" />
</dist:module>
<application>
<activity
android:name="com.android.samples.instantdynamicfeatures.UrlInstantModuleActivity"
android:label="@string/title_activity_url_instant_module"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter
android:autoVerify="true"
android:order="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="uabsample-405d6.firebaseapp.com"
android:path="/url"
android:scheme="http" />
<data android:scheme="https" />
</intent-filter>
</activity>
</application>
</manifest>
<resources>
...
<string name="title_url_instant_module">url</string>
<string name="title_activity_url_instant_module">url_instant_module_activity</string>
</resources>
更新:我忘了提:我用我的更改了示例项目的应用程序 ID,并将著名的 Json 放在我的网站上。我使用 App Links Assistant 进行了检查,一切正常。