针对特定文件扩展名的 Android 意图过滤器?

2024-01-10

我希望能够从网络下载具有特定扩展名的文件,并将其传递给我的应用程序来处理它,但我无法弄清楚意图过滤器。文件类型不包含在 mimetypes 中,我尝试使用

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

但我无法让它发挥作用。


以下是我在 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>

The scheme of file表示这应该在打开本地文件(而不是像 HTTP 这样的协议)时发生。

mimeType可以设置为*/*匹配任何 mime 类型。

pathPattern是您指定要匹配的扩展名的位置(在此示例中.kdb). The .*开头匹配任何字符序列。这些字符串需要双重转义,所以\\\\.匹配字面句号。然后,以文件扩展名结束。 pathPattern 的一个警告是.*如果这是一个正则表达式,则不是像您所期望的那样的贪婪匹配。此模式将无法匹配包含.之前.kdb。有关此问题的更详细讨论和解决方法,请参阅here https://stackoverflow.com/questions/3400072/pathpattern-to-match-file-extension-does-not-work-if-a-period-exists-elsewhere-i/8599921#8599921

最后,根据Android文档,两者host and scheme需要属性pathPattern属性起作用,因此只需将其设置为通配符即可匹配任何内容。

现在,如果您选择.kdb文件在像 Linda 文件管理器这样的应用程序中,我的应用程序显示为一个选项。我应该注意的是,仅此一项并不允许您在浏览器中下载此文件类型,因为它仅注册到文件方案。手机上安装像 Linda 文件管理器这样的应用程序本身通常就不允许您下载任何文件类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

针对特定文件扩展名的 Android 意图过滤器? 的相关文章

  • Android 在画布上遮罩位图生成黑色空间

    我有一个蒙版位图 一半是红色 一半是透明的 如下所示https www dropbox com s 931ixef6myzusi0 s 2 png https www dropbox com s 931ixef6myzusi0 s 2 pn
  • Android 卷页动画

    我对 Android 动画有点陌生 目前我正在开发一个故事活动 需要像 iPhone 中那样使用卷页动画 我发现 iPhone 中有一种方法可以做到这一点 但我仍然找不到在android中做的方法 所以请帮我解决这个问题 谢谢大家 谷歌代码
  • 有没有一种方法可以在不使用意图的情况下在活动之间发送数据?

    我有一个对于每个用户来说都是唯一的用户名 我想将其发送到某个活动 但我不想使用意图 create an intent and sends username Intent intent new Intent RegisterOwner thi
  • 使用busybox在后台安装apk

    我可以在 root 设备上使用 busybox 在后台安装 apk 吗 我看到类似的东西 但它不起作用 process install CommandCapture command new CommandCapture 0 chmod 77
  • 在Java中测试服务器是否启动的正确方法?

    简单地查看是否可以建立与网站 服务器的连接的正确方法是什么 我想要这个用于我正在编码的应用程序 如果我的网站离线 它只会提醒我 Thanks 您可以使用 HttpURLConnection 发送请求并检查响应正文中是否有该页面特有的文本 而
  • Android SQLite 从代码中转储数据库以进行错误报告

    我正在为我的一个 Android 程序开发一种诊断工具 本质上 如果用户遇到问题 我想做一些类似 SQLite 的事情dump 参考 http www sqlite org sqlite html http www sqlite org s
  • 如何在Android中访问现有的sqlite数据库?

    到目前为止 我们已经在 Android 中开发了在运行时创建数据库的应用程序 我们想知道如何在 Android 应用程序中访问预构建或现有的数据库 sqlite 文件 请提供详细信息 查看文档android database sqlite
  • 地理编码 API 与地理编码器

    在我的应用程序中 我需要使用地理编码 但我不太清楚该使用哪种方法 直到昨天我在URL中添加了参数maps googleapis com maps api geocode json address myparameter sensor fal
  • 我如何从android中的复选框获取值

    我想获取复选框中所选项目的名称 但我只得到一些字母数字 如何从复选框中获取所选项目的名称 public View getView int position View convertView ViewGroup parent View vie
  • 尝试获取屏幕上绘制的每个随机圆圈的 x、y 坐标

    您好 我正在制作一款游戏 该游戏将在屏幕上创建随机圆圈 随机创建的圆圈的值为红色或绿色 我的问题是 我希望不仅能够确定用户何时单击其中一个圆圈 而且还能够确定他们最终单击的圆圈 红色或绿色 下面是我的代码 我的主要问题是试图找到将要绘制的圆
  • 在没有 BluetoothManagerCallback 的情况下调用 getBluetoothService

    我正进入 状态getBluetoothService called with no BluetoothManagerCallback在我的 Android 应用程序中经常出现错误 我不知道是什么原因导致这个或任何有关蓝牙管理器回调的事情 谁
  • 该项目可能使用的 Gradle 版本不包含“compileSdkVersion()”方法

    当我尝试运行最初在 Eclipse ADT 上创建的项目时 我遇到了这个问题 Error 17 0 Gradle DSL method not found compileSdkVersion Possible causes ul li Th
  • ProgressBar.setInminateDrawable() 不起作用

    当我尝试更改我的 indeteminateDrawable 进度条就消失了 我必须更改我的进度条的可绘制对象 我尝试了invalidate requestLayout等 我不知道如何解决它 谢谢 这里的代码 progressBar setI
  • java.net.ProtocolException:流意外结束

    我面临一个奇怪的问题 并且无法调试它 我已经实现了上传数据流的逻辑 并使用 Volley 来实现相同的功能 我在HurlStack addBodyIfExistsapi 以便可以处理 application octet stream 类型的
  • Android 媒体播放器搜索栏

    我有一个创建 播放和处理媒体播放器 只是音频 的服务 但我在主要活动中有一个搜索栏 我想自然地显示音频文件的进度并允许用户搜索到不同的位置 我花了很长时间才弄清楚 将 UI 中的搜索栏连接到服务中的媒体播放器的最佳或正确方法是什么 我将这样
  • 从 Android 访问云存储

    我一直无法找到任何有关如何从 Android 应用程序使用云存储的具体文档 我确实遇到过这个客户端库 https cloud google com storage docs reference libraries然而 Google Clou
  • phonegap html5 android 同步文件系统 IO

    如何使用 PhoneGaps 文件系统 API 同步读写文件 有可用的同步包装器吗 无法通过提供的 api 同步访问文件 从phonegap的实现方式猜测 我怀疑您是否可以编写一个插件来同步执行此操作
  • 通知操作而不启动新活动?

    我计划提供一个包含两个操作的提醒通知 一个用于批准登录请求 一个用于拒绝登录请求 通过单击这些操作中的任何一个 我希望向我的服务器发出 HTTP 请求 最重要的是 我不想启动新的 Activity 或根本不想将用户重定向到我的应用程序 Co
  • 在 Qt 中构建 Android 项目不再有效

    所以我对 Android SDK NDK 和 Apache Ant 进行了一些更新 现在我无法构建任何 Android 项目 我收到一条警告 然后它说找不到 build xml 文件 错误 Warning Android platform
  • 应用程序关闭时单击 Firebase 通知后打开特定活动/片段

    我知道这个问题似乎重复 但根据我的要求 我在网上搜索了很多帖子 但没有任何对我有用 我的要求 我正在使用 Firebase 来获取推送通知 当应用程序打开时意味着一切正常 但我的问题是 如果有任何推送通知出现 应用程序处于后台 关闭意味着我

随机推荐

  • Xcode 有代码自动格式化功能吗?

    有什么方法可以在 Xcode IDE 中自动格式化源代码吗 Xcode 中并没有真正的自动格式化选项 有一个选项 I Control I 重新缩进代码 这将根据您首选项中设置的制表符宽度重新对齐代码 但仅此而已 如果您使用像 TextMat
  • 使用 Globalize 和Friendly_id 将同一页面重定向到不同语言

    在过去的几个小时里 我一直在挠头 寻找答案 但我无法在任何地方找到它 我的宝石文件 Use globalize for translating models gem globalize github ncri globalize for R
  • Angular 2:检查单击元素时是否按下了 Shift 键

    在 Angular 2 应用程序中 我希望点击事件在以下情况下触发不同的内容 按住 Shift 键 如何实现这一目标 html如下 div class item div 我想做这样的事情 toggleSelected obj if shif
  • 实现 Comparable 以使用字符串按字母顺序排序

    我希望有一个可比较的对象 在这种情况下在 TreeSet 中使用它 我的对象有一个名称字段 我希望它按字母顺序排序 我首先想到我可以使用字符串的 unicode 值并简单地进行减法 但是 AA 会在 Ab 之后 我是这样开始的 public
  • 连接 RAISERROR 中的消息

    这里正确的语法是什么 If timestamp lt Select PromoStartTimestamp From promo RAISERROR Code not valid until Select PromoStartTimesta
  • Android/Java 上的数据报传输层安全 (DTLS)

    有人在 Android 上使用过 DTLS 或者有支持 DTLS 的开源 Java 实现吗 在 Android 上保护 UDP 流量的其他选项有哪些 纯 Java 中尚不支持 DTLS 我们最终通过 JNI 使用 OpenSSL 我怀疑你会
  • 如何使用 maven-bundle-plugin 从导入包中排除版本号?

    我在使用 maven bundle plugin 生成的 MANIFEST MF 时遇到问题 由于某种原因 当我在
  • 运行 PHPUnit 时出错

    当我尝试运行时出现以下错误phpunit 从我的项目的测试文件夹中 PHP Fatal error Call to undefined method PHP CodeCoverage Filter getInstance in usr sh
  • 排除 Spring-data-rest 资源的某些字段

    我正在尝试将 Spring data rest 与 spring data mongodb 一起使用来公开只读资源 我遇到的问题是我想对我的文档有不同的看法 假设我在文档中有一些私人信息 我不想公开它们 所以我尝试了几种方法 我读了这篇文章
  • Plotly python离线-点击时访问url?

    是否可以配置一个plotly https plot ly python绘图以便用户在单击某个数据点时被带到特定的 url 我的预期用途是条形图 我希望能够单击一个条形图 然后转到一个 url 每个条形图都配置有不同的 url 我正在使用pl
  • 如何在 highcharter 中悬停时获得系列突出显示?

    Highcharts 具有这个巧妙的功能 当将鼠标悬停在柱形图中的条形上时 整个系列都会突出显示 最好实时查看here https www highcharts com demo column negative 在 R 包装器中highch
  • 使用 dev_appserver.py 进行覆盖不包括我的项目文件

    我运行以下命令覆盖范围3 6 https pypi python org pypi coverage Appengine 1 8 0 64 位 Ubuntu 13 04 上的 Python 2 7 4 coverage run dev ap
  • 如何在 C# 中检测任何 Excel 单元格的更改?

    我正在编写一个 Excel VSTO 插件 并且希望获取特定工作表中的单元格更改事件 如何才能做到这一点 检查Excel Application SheetChange事件处理程序 基本上 只要任何工作表中的任何单元格发生更改 它就会触发
  • 使用 Carrierwave 重命名上传的文件

    我正在使用 Carrierwave 上传文件 并且可以正常工作 我的问题是尝试更改上传文件的名称 在生成的 uploader rb 中有一个我认为我应该使用的方法 def filename something jpg if original
  • vim 键映射参考

    我刚刚安装了 command t 插件以及将其映射到 cmd t 而不是 Leader t 的内容 我对 vim 相当陌生 我不知道按键映射的符号是什么 在哪里可以找到在 vim 中映射组合键时使用的符号的参考 vim 的一个原则是 未记录
  • 如何在 javascript 中从弹出窗口进行打印?

    我有一个 Net 应用程序 它动态创建一个小型 HTML 页面 并使用 javascript document open 方法将其弹出在新窗口中 具有该功能的一切都工作正常 现在我想向打印该页面的 HTML 页面添加一个按钮 我尝试使用以下
  • Boolean.TRUE == myBoolean 与 Boolean.TRUE.equals(myBoolean)

    是否有过使用的情况equals Boolean and 处理时会返回不同的结果Boolean物体 Boolean TRUE myBoolean Boolean TRUE equals myBoolean 我在这里考虑的不是原始类型 而是布尔
  • 如何将 JFrame 放入 Java Swing 中现有的 JPanel 中?

    I have an open source java swing application like this http i47 tinypic com dff4f7 jpg http i47 tinypic com dff4f7 jpg 您
  • Wix - 安装然后运行 ​​powershell 脚本

    我知道有几篇关于 Wix 和 PowerShell 脚本的帖子 但在尝试了这些帖子中的解决方案后 我仍然没有得到我想要的结果 为了解释我的情况 我创建了一个 Wix 安装项目 它将从我的本地计算机 运行 Windows 7 获取 2 个 P
  • 针对特定文件扩展名的 Android 意图过滤器?

    我希望能够从网络下载具有特定扩展名的文件 并将其传递给我的应用程序来处理它 但我无法弄清楚意图过滤器 文件类型不包含在 mimetypes 中 我尝试使用