【问题标题】:Some Android phones not opening custom file extension某些 Android 手机无法打开自定义文件扩展名
【发布时间】:2012-05-01 13:59:03
【问题描述】:

我有一个应用程序,它通过电子邮件发送具有自定义文件扩展名的文件,这些文件基本上只是加密的 xml 文件。我的应用程序有一个意图过滤器来打开这些,它适用于我的特定手机(Samsung Galazy S Mesmerize),但是当我尝试在其他一些手机(Electrify、Thunderbolt 等)上打开带有自定义文件扩展名的附件时,它说没有任何东西可以打开该文件。 (顺便说一句,正在尝试的手机确实安装了我的应用程序)。

这是我的意图过滤器:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <data android:scheme="file" />
  <data android:mimeType="*/*" />
  <data android:pathPattern=".*\\.tgtp" />   
  <data android:host="*" />
</intent-filter>

我能做些什么来确保所有安卓手机在安装了我的应用后都能打开我的自定义文件扩展名?

谢谢

【问题讨论】:

  • 老实说,我认为这是不可能的,除非您选择了现有的 mimetype。但我已经有一段时间没有看它了。也许是手机上的android版本不同?
  • 谁能证实这是不可能的?如果是这样,那很好,我会相应地计划。如果可能的话,我真的很想知道发生了什么。我测试过的手机肯定是不同的安卓版本(2.3 / 4.0)。我无法想象这会如何/为什么会改变任何事情
  • 当您尝试此操作时,日志中是否出现任何内容?

标签: android mime-types email-attachments intentfilter


【解决方案1】:

我猜这取决于文件在您的其他设备上所在的路径。我发现intent filter中的pathPattern属性对文件的全路径非常敏感。

查看以下类似问题的答案: https://stackoverflow.com/a/7102838/624109

基本上,您需要有几个pathPattern 属性,这些属性很可能会捕获您文件的位置。

还有一点,我认为即使你使用本地文件,你仍然需要有port属性。

经过数小时的挖掘,这两个变化使它对我有用。

【讨论】:

  • 成功了!我猜由于原始文件是基于 xml 的 text/xml 方案是有意义的。谢谢!
  • @Nick:你自己还理解你的评论吗?有什么诀窍?端口属性?方案还是类型?
【解决方案2】:

尽管开发者文档说它会是一样的,但我相信它不是:

尝试将所有 属性放在同一个元素中,即只有一个

多于一个 仅用于使用其他 URI 或 MIME 类型扩大过滤器...

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    相关资源
    最近更新 更多