<queries><!-- 查询所有启动器应用 --><intent><action android:name="android.intent.action.MAIN" /></intent></queries>
getInstalledApplications方式获取的比较杂乱,有时无法获取第三方应用
建议使用queryIntentActivities
PackageManager pm = getPackageManager();// List<ApplicationInfo> apps = pm.getInstalledApplications(PackageManager.GET_META_DATA);Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_LAUNCHER);List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);for (ResolveInfo resolveInfo : resolveInfos) {try {ApplicationInfo appInfo = pm.getApplicationInfo(resolveInfo.activityInfo.packageName, 0);Drawable banner = appInfo.loadBanner(pm);if( banner==null){banner = appInfo.loadIcon(pm);}AppItem app = new AppItem(appInfo.loadLabel(pm).toString(),banner,appInfo.packageName);appList.add(app);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}}