Android:设置mimeType时,应用程序不会出现在抽屉中

时间:2015-02-05 21:18:21

标签: android android-intent android-manifest

我有一个Activity,它既是MainActivity,也是在点击Gallery中的'Share'-Button时应该启动的活动。

所以我的Manifest看起来像这样:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
        <category android:name="android.intent.category.LAUNCHER" />
        <action android:name="android.intent.action.MAIN" />
        <action android:name="android.intent.action.SEND" />
    </intent-filter>
</activity>

使用上面的清单,应用程序会出现在共享菜单中,但不会显示在应用程序抽屉中。如果我删除设置mimeType的行,则应用程序将出现在应用程序抽屉中,但不会出现在库中的共享菜单中。

任何建议如何实现两者?

提前致谢。

1 个答案:

答案 0 :(得分:2)

<intent-filter>中使用两个单独的<activity>元素:一个用于MAIN / LAUNCHER,另一个用于SEND / DEFAULT / MIME类型。

<activity
    android:name=".MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <category android:name="android.intent.category.LAUNCHER" />
        <action android:name="android.intent.action.MAIN" />
    </intent-filter>
    <intent-filter>
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
        <action android:name="android.intent.action.SEND" />
    </intent-filter>
</activity>