我有一个应用程序通过电子邮件发送带有自定义文件扩展名的文件,这些文件基本上只是加密的xml文件。我的应用程序有一个打开这些的意图过滤器,它适用于我的特定手机(三星Galazy S Mesmerize),但当我尝试在其他一些手机(Electrify,Thunderbolt等)上打开我的自定义文件扩展名附件时,它说没有任何东西可以打开该文件。 (顺便说一句,正在尝试DO的手机安装了我的应用程序。)
这是我的意图过滤器:
<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>
我有什么办法可以确保所有Android手机在安装我的应用程序后能够打开我的自定义文件扩展名吗?
由于
答案 0 :(得分:4)
我想这取决于文件在其他设备上的路径。我发现intent过滤器中的pathPattern
属性对文件的完整路径非常敏感。
看一下类似问题的以下答案: https://stackoverflow.com/a/7102838/624109
基本上,您需要拥有多个pathPattern
属性才能捕获文件的位置。
另一件事是,我认为即使你使用本地文件,你仍然需要port
属性。
这两项变化使得它在经过数小时的挖掘后对我有用。
答案 1 :(得分:0)
尽管开发者文档说它会是相同的,但我认为不是:
尝试将所有&lt; data ...&gt;属性在同一元素中,即只有一个&lt; data&gt;。
有多个&lt; data&gt;仅用其他URI或MIME类型扩展过滤器...