XML 文件的意图筛选器


我希望

当用户尝试打开 xml 文件时,能够在我的应用中打开 XML 文件。有很多类似的问题,但我尝试了很多,似乎没有任何帮助。

当我对 PDF 文件使用这些意图过滤器时,它工作得很好(对于 PDF(,但是当我用"xml"替换两个提到的"pdf"时,即使文件位于同一文件夹中,它也不适用于 XML 文件。

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

就我而言,application/xhtml+xml解决了我的问题。

您有两个<intent-filter>元素。

第一个依赖于 MIME 类型。 application/xml是 XML 文件的可能 MIME 类型,但 text/xml 也是如此。并且,对于某些XML文件,可能会根据XML的内容使用另一种MIME类型(例如,对于使用Atom架构编写的内容application/atom+xml(。文件管理器和其他"通用"内容管理器将倾向于使用MimeTypeMap文件扩展名报告的任何MIME类型。其他应用(如电子邮件客户端和 Web 浏览器(将使用服务器报告的 MIME 类型。

第二个依赖于方案(file(和文件扩展名(.xml(。file方案正在慢慢消失,因此这种特殊的<intent-filter>将来不会太多使用。

最新更新