【发布时间】:2014-06-18 07:56:46
【问题描述】:
我有一个扩展名为 .myext 的自定义文件类型。
我已经阅读了 android 文档和许多 SO 帖子,以了解如何配置意图过滤器以将这些文件关联到我的应用程序。它可以工作,但不能正常工作。
当我使用这个意图过滤器时:
<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:mimeType="application/*" />
<data android:pathPattern=".*\\.myext" />
<data android:host="*" />
</intent-filter>
然后它将.myext 文件链接到我的应用程序,但也链接到没有应用程序关联的每个文件。所以我可以打开我不想要的.otherext 文件。
然后我发现这个答案https://stackoverflow.com/a/5097734/575481 建议有多个意图过滤器,所以我得到:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
<data android:host="*" />
<data android:pathPattern=".*\\.myext" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
<data android:host="*" />
<data android:mimeType="application/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
<data android:host="*" />
<data android:pathPattern=".*\\.myext" />
</intent-filter>
但这似乎对我不起作用。
我想要的是:我的应用只打开 .myext 文件。你有什么想法吗?
此外,我需要打开一些其他文件 ext (.myext1, .myext2) ,但我想一旦我获得了正确的意图过滤器,我只需将其复制给其他带有扩展名的文件,对吗?
【问题讨论】:
标签: android intentfilter