【问题标题】:Cannot open custom file extension无法打开自定义文件扩展名
【发布时间】:2014-02-13 03:23:16
【问题描述】:

我有一个我希望支持的文件格式,它只是一个 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 上,当我尝试打开文件时,出现以下异常: 存储块长度无效。

【问题讨论】:

标签: android android-activity android-manifest android-actionmode


【解决方案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>

【讨论】:

  • 谢谢!带扩展名的 MimeType 适用于所有文件!
  • 知道如何将启动参数发送到应用程序/或如何发送?我想加载启动应用程序的 url(通过单击项目文件加载项目)。
猜你喜欢
  • 2019-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 2016-11-12
  • 1970-01-01
相关资源
最近更新 更多