多种 MIME 类型的意图过滤器

Ego*_*gor 5 android intentfilter android-manifest android-intent android-activity

我的问题是如何Activity在清单文件中正确指定处理不同的 MIME 类型。我正在尝试创建一个Activity可以处理不同档案的文件,因此我将其添加到清单中,如下所示:

<activity
    android:name=".activity.ArchiveActivity"
    android:label="@string/title_activity_archive" >
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />

        <data android:mimeType="application/zip" />
        <data android:mimeType="application/gzip" />
        <data android:mimeType="application/x-tar" />
        <data android:mimeType="application/java-archive" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这仅适用于 .zip 文件。例如,当我尝试从另一个应用程序打开 .jar 存档时,它告诉我无法找到合适的应用程序。提前致谢。

编辑事实证明,Android 无法理解最后三种 MIME 类型,因此我认为无法使用 Intents 在 Android 中打开 .jar 文件。

lok*_*oko 1

尝试这样的事情:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="application/zip" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="application/gzip" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="application/x-tar" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="application/java-archive" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)