前言
我需要进行应用之间的跳转,但在那之前我需要判断一下要跳转的应用有没有安装,但就在这里出了点问题,如果您确定您指定的包名没有问题的话,并且您使用的Android版本是11及之后的话,这篇文章可能能帮到您。
原来的写法
PackageInfo packageInfo = context.getPackageManager().getPackageInfo("XXX", 0);
核心代码就这么一句,这种方式之前是没有问题的,但在Android11之后就不行了
会报一个错误,说没有找到这个包名
W/System.err: android.content.pm.PackageManager$NameNotFoundException: XXX
解决方法
根据我找到的资料,Android11之后获取其他应用的安装情况需要再AndroidManifest.xml清单文件中进行声明
我们只需要再AndroidManifest.xml清单文件中声明一下需要进行跳转的应用包名就好了
<queries>
<package android:name="XXX" />
</queries>
尾声
如果这篇文章能帮到您,那么这篇文章就有意义!
感谢您的观看