开发者

Using implicit intent to launch activity?

I have a problem using implicit intent to launch activity within my application.

I have created activities RecordList (lists all the albums), RecordEditor (used to add/edit tracks of record) and TrackEditor. I've managed to get the RecordEditor to launch when user selects new or edit from the RecordList. Problem occurs when I try to add new track to the the record (launch the TrackEditor activity).

Here is how I have defined the activities in manifest:

RecordList

<activity android:name="RecordList">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <action android:name="android.intent.action.EDIT" />
        <action android:name="android.intent.action.PICK" />
        <data android:mimeType="vnd.android.cursor.item/vnd.example.record" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.intent.action.GET_CONTENT" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="vnd.android.cursor.item/vnd.example.record" />
    </intent-filter>
</activity>

RecordEditor

<intent-filter>
    <action android:name="android.intent.ac开发者_如何学Gotion.GET_CONTENT" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="vnd.android.cursor.item/vnd.example.track" />
</intent-filter>

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.EDIT" />
    <action android:name="com.example.records.action.EDIT_RECORD" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="vnd.android.cursor.item/vnd.example.record" />
</intent-filter>

<intent-filter>
    <action android:name="android.intent.action.INSERT" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="vnd.android.cursor.dir/vnd.example.record" />
</intent-filter>

TrackEditor

<activity android:name="TrackEditor">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <action android:name="android.intent.action.EDIT" />
        <action android:name="com.example.records.action.EDIT_TRACK" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="vnd.android.cursor.item/vnd.example.track" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.intent.action.INSERT" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="vnd.android.cursor.dir/vnd.example.track" />
    </intent-filter>
</activity>

And here is the exception I keep getting when trying to add new track to Record:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.INSERT dat=content://com.example.provider.Track/tracks }

I've used the NotePad example as base for this but I am unable to figure out where I am doing wrong. Any help would be appreciated. :)


It is unclear what you think you are gaining from these "implicit Intents".

That being said, your problem is with your content provider. It is not indicating that the MIME type for content://com.example.provider.Track/tracks is any of those for which you support the INSERT action.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜