public List<AppInfo> getInstalledApps() {

    List<PackageInfo> packageInfos = pm.getInstalledPackages(PackageManager.MATCH_DEFAULT_ONLY);
    ArrayList<AppInfo> appList = new ArrayList<AppInfo>();
    List<PackageInfo> packages = pm.getInstalledPackages(0);

    for (PackageInfo info : packages) {
      AppInfo appinfo = new AppInfo();

      appinfo.setPackname(info.packageName);
      appinfo.setVersion(info.versionName);
      appinfo.setAppname(info.applicationInfo.loadLabel(pm).toString());
      appinfo.setAppicon(info.applicationInfo.loadIcon(pm));
      appinfo.setUserpp(filterApp(info.applicationInfo));
      appList.add(appinfo);

      appinfo = null;
    }

    //        ArrayList<AppInfo> appList = new ArrayList<AppInfo>();
    //        List<ApplicationInfo> applicationInfo = pm.getInstalledApplications(0);
    //
    //        for (ApplicationInfo info : applicationInfo) {
    //            AppInfo appinfo = new AppInfo();
    //
    //            Drawable app_icon = info.loadIcon(pm);
    //            appinfo.setAppicon(app_icon);
    //            String app_name = info.loadLabel(pm).toString();
    //            appinfo.setAppname(app_name);
    //            String packageName = info.packageName;
    //            appinfo.setPackname(packageName);
    //            try {
    //                //获取应用的版本号
    //                PackageInfo packageInfo = pm.getPackageInfo(packageName, 0);
    //                String app_version = packageInfo.versionName;
    //                appinfo.setVersion(app_version);
    //            } catch (PackageManager.NameNotFoundException e) {
    //                e.printStackTrace();
    //            }
    //            appList.add(appinfo);

    //            Log.i("duanlang", "applicationInfos = " + applicationInfo);

    //        }

    return appList;
  }