获取桌面类应用

获取所有桌面

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;

    }

你可能感兴趣的:(获取桌面类应用)