猿问

用于特定文件扩展名的Android意图筛选器?

用于特定文件扩展名的Android意图筛选器?

我希望能够从‘net’下载一个具有特定扩展名的文件,并将它传递给我的应用程序来处理它,但是我还无法找到意图筛选器。

<data android:path="*.ext" />

但我不能让它起作用。



九州编程
浏览 536回答 3
3回答

UYOU

下面是我如何在AndroidManifest.xml中定义我的活动,以使其正常工作。<activity&nbsp;android:name="com.keepassdroid.PasswordActivity"> &nbsp;&nbsp;&nbsp;&nbsp;<intent-filter> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<action&nbsp;android:name="android.intent.action.VIEW"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.DEFAULT"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.BROWSABLE"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:scheme="file"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:mimeType="*/*"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:pathPattern=".*\\.kdb"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<data&nbsp;android:host="*"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;</intent-filter></activity>这个scheme的file指示打开本地文件(而不是HTTP之类的协议)时应该发生这种情况。mimeType可以设置为\*/\*匹配任何哑剧类型。pathPattern指定要匹配的扩展名(在本例中)。.kdb)。这个.*开始时匹配任何字符序列。这些字符串需要双转义,所以\\\\.匹配文字句点。然后,以文件扩展名结束。关于路径模式的一个警告是.*不是一个贪婪的匹配,如果这是一个正则表达式的话。此模式将无法匹配包含.在.kdb..有关此问题的更详细讨论和解决办法,请参见这里最后,根据Android文档,host和scheme属性所需的属性。pathPattern属性来工作,所以只需将其设置为通配符即可匹配任何内容。现在,如果选择.kdb在像LindaFileManager这样的应用程序中,我的应用程序显示为一个选项。我应该指出,仅这一点并不允许您在浏览器中下载此文件类型,因为这只是在文件方案中注册。在你的手机上有一个像LindaFileManager这样的应用程序,通常情况下,它允许你下载任何类型的文件。&nbsp;
随时随地看视频慕课网APP

相关分类

Android
我要回答