是否有可能使一个意图,显示活动是在应用程序抽屉,但不是主屏幕应用程序(如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) }