通过ResolveInfo类可以获取存在的APP的相关信息,包括:
APP名称:resolveInfo.activityInfo.loadLabel(packageManager).toString()
APP包名:resolveInfo.activityInfo.packageName
APP图标:resolveInfo.activityInfo.loadIcon()
但是通过上述方法获得的APP图标有时候(如ImageView太大时)会存在失真的问题,解决如下:
try { Resources r = mContext.getPackageManager().getResourcesForApplication( resolveInfo.activityInfo.applicationInfo); int iconId = resolveInfo.getIconResource(); try { int density = (int) (mContext.getResources().getDisplayMetrics().density * 160 * 2); localAppBean.setIcon(r.getDrawableForDensity(iconId, density)); } catch (Resources.NotFoundException e) { localAppBean.setIcon(r.getDrawable(iconId)); } } catch (Exception e) { e.printStackTrace(); }