PackageManager pm = ctx.getApplicationContext().getPackageManager();
appList = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
--------------------------------------------
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
mApps = getPackageManager().queryIntentActivities(mainIntent, 0);
--------------------------------------------
//下面是android2.2 Launcher源代码的LauncherModel用到的代码
final Intent mainIntent = new Intent( Intent.ACTION_MAIN, null );
mainIntent.addCategory( Intent.CATEGORY_LAUNCHER );
final PackageManager packageManager = mContext.getPackageManager();
List<ResolveInfo> apps = null;
//获取系统全部的应用程序
//在指定的intent中获取所有可能执行的activity列表
apps = packageManager.queryIntentActivities( mainIntent, 0 );
//APP总数
int N = apps.size();
-------------------------------------------------------------------------------------------------------------------------------------------------
在Activity里操作:
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager mPackageManager = getPackageManager();
//符合上面条件的全部查出来,并且排序
List<ResolveInfo> mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0);
Collections.sort(mAllApps, new ResolveInfo.DisplayNameComparator(mPackageManager));