8

我有一个我希望支持的文件格式,它只是一个 zip,但我已将其重命名为 .amg,以便我的应用程序可以读取它。

在我的带有姜饼的三星手机上,它运行良好并且可以打开。

在我的带有 kitkat 的摩托罗拉手机上,我得到的只是无法打开它。

我尝试了这里找到的各种解决方案,但似乎都没有。

通常我将文件复制到手机上的下载文件夹中,然后单击该文件。

唯一适用于 kitkat 的事情是,如果我使用 Astro 文件管理器打开文件,但我无法强制使用该应用程序。那么让Astro工作但没有别的原因是什么?

    <activity
        android:name="com.test.StartupActivity"
        android:label="@string/app_name"
        android:theme="@style/backdropTheme" >
        <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" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:host="*" />
            <data android:mimeType="*/*" />
            <data android:scheme="file" />
            <data android:pathPattern=".*\\.amg" />
        </intent-filter>
    </activity>

** [编辑] * ** * ** 如果我在 kitkat 中使用 Astro 文件管理器,它似乎可以工作。所以 Astro 可以工作,我尝试过的其他三个包括内置的都没有,但是姜饼总是可以的。

但是,在我的 kitkat 上,当我尝试打开文件时出现以下异常:存储的块长度无效。

4

1 回答 1

1

如果您查看 logcat,在尝试打开电子邮件附件等时,您可以看到内容是如何解析的。您会注意到 mimeType 是 application/octet-stream。请注意,我没有将方案设置为 pathPattern 暗示的文件 | 内容。这是我用于 gpx 文件的过滤器:

<intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.EDIT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data
                android:mimeType="application/octet-stream"
                android:host="*"
                android:pathPattern=".*\\.gpx" />
        </intent-filter>  

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.EDIT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data
                android:mimeType="application/gpx"
                android:host="*"
                android:pathPattern=".*\\.gpx" />
        </intent-filter>

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

            <data
                android:host="*"
                android:pathPattern=".*\\.gpx" />
        </intent-filter>
于 2014-07-22T13:51:40.627 回答