Android 没有行动的意图的解决方案
根据Android文档():“另一方面,只要过滤器至少包含一个操作,没有指定操作的Intent对象就会自动通过测试。” 和“意图对象中的每个类别必须与筛选器中的一个类别匹配。筛选器可以列出其他类别,但不能忽略意图中的任何类别。” 我有一个意向过滤器声明如下:Android 没有行动的意图的解决方案,android,android-intent,Android,Android Intent,根据Android文档():“另一方面,只要过滤器至少包含一个操作,没有指定操作的Intent对象就会自动通过测试。” 和“意图对象中的每个类别必须与筛选器中的一个类别匹配。筛选器可以列出其他类别,但不能忽略意图中的任何类别。” 我有一个意向过滤器声明如下: <intent-filter> <action android:name="my.custom.action" /> <category android:name
<intent-filter>
<action android:name="my.custom.action" />
<category android:name="my.custom.category" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
根据上述规则,我希望此筛选器的父活动返回以下代码,但实际情况并非如此:
List<ResolveInfo> list = getPackageManager().queryIntentActivities(
new Intent().addCategory("my.custom.category"),
PackageManager.MATCH_DEFAULT_ONLY + PackageManager.GET_RESOLVED_FILTER);
List List=getPackageManager().queryInputActivities(
new Intent().addCategory(“my.custom.category”),
PackageManager.MATCH_DEFAULT_ONLY+PackageManager.GET_RESOLVED_FILTER);
如果未指定任何操作,意图解析是否会返回带有上述筛选器的活动
谢谢 在您的示例中,主要问题在于
PackageManager.MATCH_DEFAULT_ONLY+PackageManager.GET_RESOLVED_FILTER
,您必须执行
(“按位或”)才能使其正常工作。我的意思是您必须编写类似于PackageManager.MATCH_DEFAULT_ONLY|PackageManager.GET_RESOLVED_FILTER
的内容。将两个标志与“+”符号一起添加很可能是问题所在
setFlags(PackageManager.MATCH_DEFAULT_ONLY +
PackageManager.GET_RESOLVED_FILTER);
我会这样做:
setFlags(PackageManager.MATCH_DEFAULT_ONLY|
PackageManager.GET_RESOLVED_FILTER);
结果是一样的。另外(0x10000+0x40)=(0x10000 | 0x40)。检查似乎只包含类别的意图不会解析为任何筛选器。原始帖子中引用的Android文档似乎是错误的。请参阅我上面的评论。还有其他想法吗?