Android意图过滤器隐藏特定类别的活动



是否有可能使一个意图,显示活动是在应用程序抽屉,但不是主屏幕应用程序(如GoLauncher),所以,也就是说,它隐藏了某个类别?

        final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.removeCategory(Intent.CATEGORY_HOME); //Doesn't work
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        [...]
        apps = packageManager.queryIntentActivities(mainIntent, 0);

使用这段代码,它们仍然会被列出…

不,对不起,Intent没有"not"运算符

接受的答案仅在文字意义上有效。虽然不能排除含有Intent.CATEGORY_HOME的项,但可以从结果中过滤它们。下面是一个kotlin示例-

    val packages = packageManager.queryIntentActivities(
        mainIntent, PackageManager.GET_RESOLVED_FILTER)
    packages.removeIf { item -> null != item.filter
            && item.filter.hasCategory(Intent.CATEGORY_HOME) }

最新更新