为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

九州编程 2019-08-03 03:03:25
用于特定文件扩展名的Android意图筛选器?我希望能够从‘net’下载一个具有特定扩展名的文件,并将它传递给我的应用程序来处理它,但是我还无法找到意图筛选器。<data android:path="*.ext" />但我不能让它起作用。
查看完整描述

3 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

下面是我如何在AndroidManifest.xml中定义我的活动,以使其正常工作。

<activity android:name="com.keepassdroid.PasswordActivity">
    <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:scheme="file" />
        <data android:mimeType="*/*" />
        <data android:pathPattern=".*\\.kdb" />
        <data android:host="*" />
    </intent-filter></activity>

这个schemefile指示打开本地文件(而不是HTTP之类的协议)时应该发生这种情况。

mimeType可以设置为\*/\*匹配任何哑剧类型。

pathPattern指定要匹配的扩展名(在本例中)。.kdb)。这个.*开始时匹配任何字符序列。这些字符串需要双转义,所以\\\\.匹配文字句点。然后,以文件扩展名结束。关于路径模式的一个警告是.*不是一个贪婪的匹配,如果这是一个正则表达式的话。此模式将无法匹配包含..kdb..有关此问题的更详细讨论和解决办法,请参见这里

最后,根据Android文档,hostscheme属性所需的属性。pathPattern属性来工作,所以只需将其设置为通配符即可匹配任何内容。

现在,如果选择.kdb在像LindaFileManager这样的应用程序中,我的应用程序显示为一个选项。我应该指出,仅这一点并不允许您在浏览器中下载此文件类型,因为这只是在文件方案中注册。在你的手机上有一个像LindaFileManager这样的应用程序,通常情况下,它允许你下载任何类型的文件。


 


查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 535 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信