1、获取手机上已安装第三方的应用的应用名称和包名并打印
private void queryFilterAppInfo() { PackageManager pm = this.getPackageManager(); // 查询所有已经安装的应用程序 List<ApplicationInfo> listAppcations = 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;
}
android 查询手机已安装的第三方应用程序