无法打开自定义文件扩展名

Nei*_*ker 7 android android-manifest android-activity android-actionmode

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

在我的三星手机上用姜饼做的很好,它打开了.

在我的带有kitkat的motorola手机上我得到的是无法打开它.

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

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

唯一适用于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>
Run Code Online (Sandbox Code Playgroud)

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

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

小智 1

如果您查看 logcat,当尝试打开电子邮件附件等时,您可以看到内容是如何解析的。您会注意到 mimeType 是 application/octet-stream。请注意,我没有将 pathPattern 隐含的方案设置为 file | 内容。这是我用于 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>
Run Code Online (Sandbox Code Playgroud)