某些Android手机无法打开自定义文件扩展名
我有一个应用程序,它通过电子邮件发送带有自定义文件扩展名的文件,这些文件本质上只是加密的xml文件。我的应用程序有一个意图过滤器来打开这些文件,它可以在我的特定手机(三星Galazy S Mesmerize)上运行,但当我试图在其他手机(Electrify、Thunderbolt等)上打开带有自定义文件扩展名的附件时,它说没有任何东西可以打开该文件。(顺便说一句,正在尝试的手机确实安装了我的应用程序) 以下是我的意向过滤器:某些Android手机无法打开自定义文件扩展名,android,mime-types,email-attachments,intentfilter,Android,Mime Types,Email Attachments,Intentfilter,我有一个应用程序,它通过电子邮件发送带有自定义文件扩展名的文件,这些文件本质上只是加密的xml文件。我的应用程序有一个意图过滤器来打开这些文件,它可以在我的特定手机(三星Galazy S Mesmerize)上运行,但当我试图在其他手机(Electrify、Thunderbolt等)上打开带有自定义文件扩展名的附件时,它说没有任何东西可以打开该文件。(顺便说一句,正在尝试的手机确实安装了我的应用程序) 以下是我的意向过滤器: <intent-filter> <action
<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>
我能做些什么来确保所有安卓手机在安装了我的应用程序后都能打开我的自定义文件扩展名
谢谢我想这取决于文件在其他设备上的路径。我发现intent过滤器中的
pathPattern
属性对文件的完整路径非常敏感
请看以下类似问题的答案:
基本上,您需要有几个pathPattern
属性,这些属性最有可能捕获文件的位置
另一件事是,我认为即使您使用本地文件,您仍然需要具有port
属性
这两个变化使我在经过数小时的反复研究后能够工作。即使开发人员文档中说它是一样的,但我相信它不是: 尝试将所有属性放在同一个元素中,即只有一个属性
如果有多个URI或MIME类型,则只需将过滤器扩展到其他URI或MIME类型…老实说,我认为这是不可能的,除非您选择了现有的MIME类型。但我已经有一段时间没看了。也许是android的版本在手机上有所不同?有人能证实这是不可能的吗?如果是这样的话,那很好,我会相应地计划。如果可能的话,我真的很想知道发生了什么事。我测试过的手机绝对是不同的android版本(2.3/4.0)。我无法想象这将如何/为什么会改变任何事情,尽管当你尝试这个时日志中会出现任何东西吗?你尝试过这个吗?这就成功了!我想,因为原始文件是基于xml的,所以text/xml模式是有意义的。谢谢@尼克:你自己还理解你的评论吗?这是什么把戏?端口属性?方案还是类型?