1、获取手机上已安装第三方的应用的应用名称和包名并打印
private void queryFilterAppInfo() { PackageManager pm = this.getPackageManager(); // 查询所有已经安装的应用程序 ListlistAppcations = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES); Collections.sort(listAppcations,new ApplicationInfo.DisplayNameComparator(pm));// 排序 // 第三方应用程序 for (ApplicationInfo app : listAppcations) { //非系统程序 if ((app.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) { Log.e("Sang", ""+app.loadLabel(pm)+" 的包名是:"+app.packageName); } //本来是系统程序,被用户手动更新后,该系统程序也成为第三方应用程序了 else if ((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0){ Log.e("Sang", ""+app.loadLabel(pm)+" 的包名是:"+app.packageName); } } return ; }
Log输出样式,如:" QQ 的包名是: com.tencent.mobileqq" !
private List<PushDownList> queryFilterAppInfo() {
pm = this.getPackageManager(); // 查询所有已经安装的应用程序 List<ApplicationInfo> listAppcations = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES); Collections.sort(listAppcations,new ApplicationInfo.DisplayNameComparator(pm));// 排序 List<PushDownList> appInfos = new ArrayList<PushDownList>(); // 保存过滤查到的AppInfo // 第三方应用程序 appInfos.clear(); for (ApplicationInfo app : listAppcations) { //非系统程序 if ((app.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) { appInfos.add(getAppInfo(app)); } //本来是系统程序,被用户手动更新后,该系统程序也成为第三方应用程序了 else if ((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0){ appInfos.add(getAppInfo(app)); } } return appInfos; }