【发布时间】:2016-06-03 06:33:12
【问题描述】:
当我执行 getPackageManager().queryIntentActivities(myIntent, 0) 时,我得到了 ResolveInfo 的列表,但我无法在 startActivity(myIntent) 中解决 myIntent 的问题。
我目前正在关注 Android 开发者网站上的介绍性示例。
Intent myIntent = new Intent("MY_CUSTOM_INTENT");
List<ResolveInfo> apps = getPackageManager().queryIntentActivities(myIntent, 0);
if(apps.size() > 0){
startActivity(myIntent);}
我检查了System.out.println(apps.size()) 的输出,返回 6,与预期一致。
对于我想从 myIntent 开始的其他应用程序,它们只是普通的 HelloWorld 应用程序
...
<intent-filter>
...
<action android:name="MY_CUSTOM_INTENT"/>
...
</intent-filter>
...
在意图过滤器中添加的一行。我不明白为什么它在查询可以解析 myIntent 的活动时完美无缺,而当真正尝试解析 myIntent 时,它开始出现错误(它表示没有可以执行此类意图的应用程序)。
【问题讨论】:
-
我已经解决了这个问题:不知何故,当我在 AndroidManifest.XML 中的默认操作 (action_main) 和类别 (category_launcher) 之间添加自定义操作 (my_custom_intent) 时,queryIntentActivities 选择了它们当我提出 my_custom_intent 时,意图实际上并没有被解释为由其中任何一个解决。我刚刚添加了另一个仅包含 my_custom_intent 和 category_default 的意图过滤器,并在查找活动时使用这两者设置了意图并且有效。
标签: java android android-intent launcher