我有一个应用程序,可以通过电子邮件发送带有自定义文件扩展名的文件,这些文件本质上只是加密的xml文件。 我的应用程序有一个意图过滤器来打开这些,它适用于我的特定手机(三星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>
我能做些什么来确保所有安卓手机在安装我的应用程序时都能打开我的自定义文件扩展名?
谢谢
这取决于文件在其他设备上的路径。我发现 intent 过滤器中的 pathPattern
属性对文件的完整路径非常敏感。
对于类似的问题,请看以下答案:https://stackoverflow.com/a/7102838/624109
基本上,您需要有几个最有可能捕获文件位置的pathPattern
属性。
另一件事是,我认为即使您使用本地文件,您仍然需要具有port
属性。
这两个变化使它经过数小时的挖掘后对我有用。
尽管开发人员文档说它会是一样的,但我相信它不是:
尝试将所有
拥有多个<数据>,只是为了扩大其他 URI 或 MIME 类型的过滤器......数据>