這個列表是與launcher桌面中的應用同樣,以此記下: java
public void run_3() { Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); PackageManager pm=easygoApplication.getInstance().getPackageManager(); List<ResolveInfo> resolveInfos =pm.queryIntentActivities(mainIntent, 0); Collections.sort(resolveInfos, new ResolveInfo.DisplayNameComparator(pm)); int i=resolveInfos.size(); for(int j=0;j<i;j++) { ResolveInfo ri=resolveInfos.get(j); String packageName=ri.activityInfo.packageName; Log.i("ResolveInfo", ri.activityInfo.loadLabel(pm).toString()); Log.i("ResolveInfo",packageName); Log.i("ResolveInfo appname",ri.activityInfo.applicationInfo.packageName); Log.i("ResolveInfo app label",ri.activityInfo.applicationInfo.loadLabel(pm).toString()); AppInfo tmpInfo = new AppInfo(); tmpInfo.appName = ri.activityInfo.loadLabel(easygoApplication.getInstance().getPackageManager()).toString(); tmpInfo.packageName = ri.activityInfo.packageName; tmpInfo.versionName = ri.activityInfo.name; tmpInfo.pinyinname=cn2Pinyin.getPinYin(tmpInfo.appName); tmpInfo.versionCode = 0; tmpInfo.icon=ri.activityInfo.icon; tmpInfo.appIcon = ri.activityInfo.loadIcon(easygoApplication.getInstance().getPackageManager()); appList.add(tmpInfo); } Collections.sort(appList,new ComparatorImpl()); }