意图过滤器为多个MIME类型多个、过滤器、意图、类型

2023-09-12 05:34:41 作者:动鸡不良

我的问题是如何正确地指定活动处理不同MIME类型的清单文件。我试图创建一个活动,将处理不同的档案,所以我将其添加的体现是这样的:

My question is how to properly specify an Activity handling different MIME-types in Manifest file. I'm trying to create an Activity that would handle different archives, so I add it to Manifest like this:

<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>

不幸的是,这仅适用于.zip文件。当我尝试打开的.jar归档,例如,从其他应用程序,它告诉我,这是无法找到一个合适的应用程序。先谢谢了。

Unfortunately, this only works for .zip files. When I try to open a .jar archive, for example, from another application, it tells me that it's unable to find a proper application. Thanks in advance.

修改事实证明,Android无法理解最后三个MIME类型,所以presume没有办法使用意图打开.jar文件中的Andr​​oid。

EDIT As it turns out, Android can't understand last three MIME-types, so I presume there is no way to open .jar files in Android using Intents.

推荐答案

尝试是这样的:

<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>