在android上準確獲取應用列表

這個列表是與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());
}
相關文章
相關標籤/搜索