获取所有已经安装app的信息列表
这里要使用PackageManager # queryIntentActivities(筛选条件intent,0),结果是ResolveInfo对象列表
基本使用方法:
Intent intent = new Intent();
intent.设置筛选条件;
List<ResolveInfo> list =
mPackageManager.queryIntentActivities(intent, PackageManager.GET_META_DATA);
如果筛选条件是:intent.setAction(Intent.ACTION_MAIN);//可以自定义action为筛选条件
会把所有带Intent.ACTION_MAIN标签的Activity筛选出来
如果筛选条件是:intent.addCategory(Intent.CATEGORY_LAUNCHER);//不可以自定义category
结果为0,,这是一个无效筛选条件
如果筛选条件是:
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
搜出来的结果比较正常
如果筛选条件是:没有筛选条件
结果为0,,这是一个无效筛选条件
如果筛选条件是:intent.setPackage(某app包名);
结果为该应用的Activity信息列表
一般不用PackageManager # getInstalledApplications(flag)方法,因为这个方法会把很多杂七杂八的东西都筛选出来,而且搜出来的是ApplicationInfo对象列表,假如一个app有多个入口,就不适用了。
mPackageManage