无法获得隐含的意图

时间:2011-09-04 11:55:10

标签: android android-intent

我正在学习如何使用隐式意图和意图过滤器,到目前为止还无法获得正确的活动。用于触发意图的代码是:

intent = new Intent();
intent.setAction("com.appsculture.intent.action.PLUGIN_RECEIVER");
startActivity(intent);

所需活动的Intent过滤器是:

<activity android:name="PluginReceiver">
<intent-filter>
    <action android:name="com.appsculture.intent.action.PLUGIN_RECEIVER"></action>
</intent-filter>
</activity>

我得到的错误是标准的ActivityNotFound

09-04 17:15:27.827: ERROR/AndroidRuntime(2552): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.appsculture.intent.action.PLUGIN_RECEIVER }

解决方案:只需将 android.intent.category.DEFAULT 类别添加到intent过滤器

之后就像魅力一样

2 个答案:

答案 0 :(得分:4)

我设法通过简单地将android.intent.category.DEFAULT类别添加到intent过滤器来解决这个问题。之后就像一个魅力。

由于Commonsware在对他的回答发表评论时表示,活动需要一个类别,但不适用于服务或广播接收者。

答案 1 :(得分:3)

你所拥有的一切都应该没问题,尽管我使用的是new Intent("com.appsculture.intent.action.PLUGIN_RECEIVER"),使用RECEIVER似乎是Activity的动作名称的奇怪部分,而不是BroadcastReceiver

如果这些应用程序位于两个单独的应用程序中,请确保在您的设备或模拟器上安装了最新的代码(即,您没有进行更改,然后无法安装更新的应用程序)。