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;
}