Android 没有行动的意图的解决方案

Android 没有行动的意图的解决方案,android,android-intent,Android,Android Intent,根据Android文档():“另一方面,只要过滤器至少包含一个操作,没有指定操作的Intent对象就会自动通过测试。” 和“意图对象中的每个类别必须与筛选器中的一个类别匹配。筛选器可以列出其他类别,但不能忽略意图中的任何类别。” 我有一个意向过滤器声明如下: <intent-filter> <action android:name="my.custom.action" /> <category android:name

根据Android文档():“另一方面,只要过滤器至少包含一个操作,没有指定操作的Intent对象就会自动通过测试。” 和“意图对象中的每个类别必须与筛选器中的一个类别匹配。筛选器可以列出其他类别,但不能忽略意图中的任何类别。”

我有一个意向过滤器声明如下:

<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文档似乎是错误的。请参阅我上面的评论。还有其他想法吗?