Xamarin Launcher.CanOpenAsync() 在 Android 11 上没有返回正确的值

问题描述

我管理着两个 Xamarin 应用。我试图通过单击 App1 中的按钮打开 App2。我有以下代码适用于较低版本的 Android。但是,在 Android 11 上,此代码始终返回 false。 Android 11 是否需要额外配置?

//The uri here is correct and App2 is installed on the Android 11 device
var canopenApp2 = await Launcher.CanopenAsync("app2url://deep-link"); 
return canopenApp2

在 Android 8、9 和 10 上,canopenApp2 返回 true,但在 Android 11 上,返回值为 false。想法?

解决方法

在 Android 11 中,开发者必须在 Android Manifest 中指定他们计划打开或“深度链接”的应用。将以下内容添加到 AndroidManifest 解决了该问题:

<queries>
        <package android:name="app2url://deep-link" />
</queries>

有关详细信息,请参阅此帖子:Managing Package Visibility

相关问答

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