也许我误解了Intent
和intent-filter
的工作方式,但在我看来,这应该是一个直截了当的案例。但是,它没有用。
这是我发送的意图:
Intent i = new Intent(Intent.ACTION_VIEW);
i.setType("vnd.android.cursor.item/vnd.connectsy.event");
startActivity(i);
这是intent-filter:
<activity android:name=".events.EventView">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:mimeType="vnd.android.cursor.item/vnd.connectsy.event" />
</intent-filter>
</activity>
最后,我收到的错误:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=vnd.android.cursor.item/vnd.connectsy.event }
答案 0 :(得分:4)
Android会处理所有隐含意图 传递给startActivity()就像它们一样 至少包含一个类别: “android.intent.category.DEFAULT”( CATEGORY_DEFAULT常量)。因此, 愿意接受的活动 隐含意图必须包括 “android.intent.category.DEFAULT”中 他们的意图过滤器。
添加
<category android:name="android.intent.category.DEFAULT" />
到AndroidManifest.xml中的意图过滤器