在自学编写Launcher时,为了获取我的App的应用列表
试了无数种方法,包括 ApplicationInfo,ResolveInfo,PackageInfo等这些来获取
(方法网上找的,我这里比较菜,为了不误导大家就不贴我的这几个代码了)
但是就是只能获取到手机自带的服务,这些服务好多还点不开(设置了点击事件了都)
后来跟前辈交流,发现安卓11对这方面加了一些修改,比如,在清单文件中的
<queries>标签,在这个标签的package子标签的name属性里,写上一些app的包名(packageName)
例如:微信的(可以在这个里面加其他的应用包名哦,我就不列出来了呢)
<queries> <package android:name="com.tencent.mm"/> </queries>
这样子的话,你的packageManager就可以读取到系统应用之外的微信啦
当然,如果你想读取全部的第三方应用,仅仅需要在清单文件中注册一个权限
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
非~常~好~用!