我正在学习如何使用隐式意图和意图过滤器,到目前为止还无法获得正确的活动。用于触发意图的代码是:
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过滤器
之后就像魅力一样
答案 0 :(得分:4)
我设法通过简单地将android.intent.category.DEFAULT类别添加到intent过滤器来解决这个问题。之后就像一个魅力。
由于Commonsware在对他的回答发表评论时表示,活动需要一个类别,但不适用于服务或广播接收者。
答案 1 :(得分:3)
你所拥有的一切都应该没问题,尽管我使用的是new Intent("com.appsculture.intent.action.PLUGIN_RECEIVER")
,使用RECEIVER
似乎是Activity
的动作名称的奇怪部分,而不是BroadcastReceiver
。
如果这些应用程序位于两个单独的应用程序中,请确保在您的设备或模拟器上安装了最新的代码(即,您没有进行更改,然后无法安装更新的应用程序)。