获取所有桌面
Intent homeIntent = new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory(Intent.CATEGORY_HOME);
List infos = packageManager.queryIntentActivities(homeIntent, 0);
在上面的基础上获取默认桌面
public static ResolveInfo queryDefaultLauncher(Context context) {
PackageManager packageManager = context.getPackageManager();
Intent homeIntent = new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory(Intent.CATEGORY_HOME);
List infos = packageManager.queryIntentActivities(homeIntent, 0);
List filters = new ArrayList();
List activities = new ArrayList();
for (ResolveInfo info : infos) {
filters.clear();
activities.clear();
String packageName = info.activityInfo.packageName;
packageManager.getPreferredActivities(filters, activities, packageName);
for (IntentFilter filter : filters) {
if (filter.hasAction(Intent.ACTION_MAIN) && filter.hasCategory(Intent.CATEGORY_HOME)) {
return info;
}
}
}
return null;
}