猿问

Android意图过滤器:将应用程序与文件扩展名关联起来

Android意图过滤器:将应用程序与文件扩展名关联起来

我有一个自定义的文件类型/扩展名,我想与我的应用程序相关联。

据我所知,数据元素就是为此目的创建的,但我无法让它工作。http:/developer.android.com/指南/主题/清单/数据-Element.html根据文档和大量的论坛帖子,它应该是这样工作的:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:mimeType="application/pdf" /></intent-filter>

这不管用。我做错什么了?我只想声明我自己的文件类型。


红颜莎娜
浏览 651回答 3
3回答

喵喔喔

您需要多个意图过滤器来解决您想要处理的不同情况。示例1,处理没有mimetype的http请求:&nbsp;&nbsp;<intent-filter> &nbsp;&nbsp;&nbsp;&nbsp;<action&nbsp;android:name="android.intent.action.VIEW"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.BROWSABLE"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.DEFAULT"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:scheme="http"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:host="*"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:pathPattern=".*\\.pdf"&nbsp;/> &nbsp;&nbsp;</intent-filter>句柄与mimetype,其中的后缀是不相关的:&nbsp;&nbsp;<intent-filter> &nbsp;&nbsp;&nbsp;&nbsp;<action&nbsp;android:name="android.intent.action.VIEW"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.BROWSABLE"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.DEFAULT"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:scheme="http"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:host="*"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:mimeType="application/pdf"&nbsp;/> &nbsp;&nbsp;</intent-filter>处理文件浏览器应用程序的意图:&nbsp;&nbsp;<intent-filter> &nbsp;&nbsp;&nbsp;&nbsp;<action&nbsp;android:name="android.intent.action.VIEW"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.DEFAULT"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:scheme="file"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:host="*"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:pathPattern=".*\\.pdf"&nbsp;/> &nbsp;&nbsp;</intent-filter>

ibeautiful

其他解决方案对我来说并不可靠,直到我补充道:android:mimeType="*/*"在此之前,它在一些应用程序中有效,在一些应用程序中不起作用为我提供完整的解决方案:<intent-filter> &nbsp;&nbsp;<action&nbsp;android:name="android.intent.action.VIEW"&nbsp;/> &nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.DEFAULT"&nbsp;/> &nbsp;&nbsp;<data&nbsp;android:scheme="file"&nbsp;&nbsp;android:host="*"&nbsp;android:pathPattern=".*\\.EXT"&nbsp;android:mimeType="*/*"&nbsp;&nbsp;/></intent-filter>
随时随地看视频慕课网APP

相关分类

Android
我要回答