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

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

作者: 苍蝇的梦 | 来源:发表于2021-11-04 16:22 被阅读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还有哪些要修改的。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/mylkzltx.html