在Galaxy S5上使用intent-filter打开.zip文件

时间:2015-04-14 22:39:27

标签: java android android-intent intentfilter galaxy

我试图在我写的应用程序中打开一个zip文件,但是当我在Galaxy S5上的My Files中浏览文件时,我的文件解压缩文件而不是打开应用程序。 / p>

如果我将扩展名更改为.upgradezip,则应用程序在传递给它的指定文件时没有问题,但是我的文件似乎完全忽略了intent过滤器并尝试解压缩文件,特别是在扩展名时。拉链

其他设备(包括LG平板电脑)可以使用我的应用程序打开.zip文件,使用与Galaxy S5相同的清单。

思考?以下是我的清单中的相关信息,我在过渡期间同时支持zip和upgradezip,但对于所有设备来说,它都非常适合使用zip。

        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:host="" android:scheme="content" android:pathPattern=".*\\.upgradezip" android:mimeType="application/octet-stream"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:host="" android:scheme="file" android:mimeType="*/*" android:pathPattern=".*\\.upgradezip"/>
        </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" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="application/octet-stream" />
        </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" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="application/zip" />
        </intent-filter>

1 个答案:

答案 0 :(得分:2)

编写自己的文件浏览器。当您调用外部程序执行某些操作时,尤其是可以通过设备更改的外部程序时,您无法控制其工作方式。它认为当你点击拉链时最好的办法是打开它。你无法阻止它这样做。因此,如果您真的不希望它这样做,请不要使用该应用程序。强迫它不要的唯一方法就是自己编写。