class PInfo { 
 private String appname = \"\"; 
 private String pname = \"\"; 
 private String versionName = \"\"; 
 private int versionCode = 0; 
 private Drawable icon; 
 private void prettyPrint() { 
 log(appname + \"\\t\" + pname + \"\\t\" + versionName + \"\\t\" + versionCode + \"\\t\"); 
 } 
 } 
 private void listPackages() { 
 ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */ 
 final int max = apps.size(); 
 for (int i=0; i<max; i++) { 
 apps.get(i).prettyPrint(); 
 } 
 } 
 private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) { 
 ArrayList<PInfo> res = new ArrayList<PInfo>(); 
 List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); 
 for(int i=0;i<packs.size();i++) { 
 PackageInfo p = packs.get(i); 
 if ((!getSysPackages) && (p.versionName == null)) { 
 continue ; 
 } 
 PInfo newInfo = new PInfo(); 
 newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString(); 
 newInfo.pname = p.packageName; 
 newInfo.versionName = p.versionName; 
 newInfo.versionCode = p.versionCode; 
 newInfo.icon = p.applicationInfo.loadIcon(getPackageManager()); 
 res.add(newInfo); 
 } 
 return res; 
 }
                









