我有一个我希望支持的文件格式,它只是一个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上,我得到以下异常: 存储的块长度无效。
答案 0 :(得分: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>