pm = getPackageManager();
Intent intent=new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> list = pm.queryIntentActivities(intent, PackageManager.GET_ACTIVITIES);
Collections.sort(list,new ResolveInfo.DisplayNameComparator(pm));
for(ResolveInfo r:list){
PackageInfo info=new PackageInfo();
info.setPackageName(r.activityInfo.packageName); //包名
info.setPackageIcon(r.loadIcon(pm)); //图标
info.setProgramName(r.loadLabel(pm).toString()); //应用程序名
info.setClassName(r.activityInfo.name); //类名
mList.add(info);
}
点击时,打开相应的应用程序
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Log.i(TAG, "onItemClick position="+position);
Intent intent=new Intent();
intent.setComponent(new ComponentName(mList.get(position).getPackageName(), mList.get(position).getClassName()));
startActivity(intent);
}