获取桌面应用的关键点:
1. ResolveInfo
2. new intent: Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
代码如下:
public static List<ResolveInfo> getShortcutApps(Context context) {
PackageManager pm = context.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> infoList = context.getPackageManager().queryIntentActivities(intent,PackageManager.GET_ACTIVITIES);
//去掉重复项目
HashSet h = new HashSet(infoList);
infoList.clear();
infoList.addAll(h);
//get data
for (ResolveInfo info: infoList) {
String lableName = (String) info.loadLabel(pm);
String pkgName = info.activityInfo.packageName;
String publisher = info.activityInfo.applicationInfo.publicSourceDir;
}
return infoList ;
}