因为Android 11的 软件包可见性 ,无法通过包名打开应用

2021-11-04  本文已影响0人  苍蝇的梦

2021-11-04 遇到的一点小问题
最近Android开发需要获取某个app的版本,并跳转打开。之前一直用的代码竟然都无法实现。

//获取app版本名称
PackageInfo packageInfo = getPackageManager().getPackageInfo("com.wannoo.test", 0);
String versionName= packageInfo.versionName;
//打开app
Intent intent = getPackageManager().getLaunchIntentForPackage("com.wannoo.test");
startActivity(intent);

确定包名,打算使用获取全部安装的应用的方法来查看,结果Android Studio有提示,Android 11无法查看。

getInstalledApplications
getInstalledPackages
这几天确实将手机升级版本到Android 11。看来是因为Android 11的软件包可见性影响的。
知道问题,网上搜一下就很多解决方案了。
我的build.gradletargetSdkVersion 30,参考Android11适配-包可见性,在AndroidManifest.xml里添加queries,就可以了。
    <queries>
        <package android:name="com.wannoo.test" />
        <package android:name="com.spotify.music" />
        <package android:name="com.roon.mobile" />
    </queries>

看了下谷歌开发者发表的您离成功还差一本免费的《Android 11 开发者手册》里面的《Android 11 开发者手册》,发现queries里的内容必须明确,不能动态添加。
顺便看了下拖不得了,Android11真的来了,最全适配实践指南奉上,看看app还有哪些要修改的。

上一篇下一篇

猜你喜欢

热点阅读