获取桌面类应用

获取所有桌面

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;

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容