public List<ApkInfo> findapks(Context context, String pathname) { results = new ArrayList<String>(); find(pathname, ".apk"); List<ApkInfo> apks = new ArrayList<ApkInfo>(); for (String apk : results) { ApkInfo apkinfo = new ApkInfo(); PackageManager pm = context.getPackageManager(); PackageInfo pi = pm.getPackageArchiveInfo(apk, PackageManager.GET_ACTIVITIES); if (pi == null) continue; ApplicationInfo ai = pi.applicationInfo; ai.sourceDir = apk; ai.publicSourceDir = apk; String apksize = pi.versionName; String apkname = ai.loadLabel(pm).toString(); Drawable apkicon = ai.loadIcon(pm); apkinfo.setAppname(apkname); apkinfo.setIcon(apkicon); apkinfo.setSize(apksize); apkinfo.setPath(apk); apks.add(apkinfo); } Collections.sort(apks, comparator); return apks; }
@Override public int compare(ApkInfo apk1, ApkInfo apk2) { // TODO Auto-generated method stub if (!apk1.getAppname().equals(apk2.getAppname())) return apk1.getAppname().compareTo(apk2.getAppname()); else if (!apk1.getSize().equals(apk2.getSize())) return apk1.getSize().compareTo(apk2.getSize()); return 0; }
public String getApkCurVersion() { return mApkInfo.getVersion(); }