使用 FileProvider 从图库中选取图像文件

2024-01-10

编译 Android N 我遇到了一个问题FileProvider。我需要让用户从图库中选择图像/用相机拍照,然后将其裁剪为正方形。

我已经成功实现了FileProvider用于用相机拍摄图像,但我在从图库中选取图像时遇到严重问题。问题是,在画廊中有很多来自不同地方的文件,我遇到了异常,例如:

  java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/6133-3766/DCIM/100ANDRO/DSC_0035.JPG

所以问题是,我可以放什么文件路径.xml访问任何地方/storage/。我不能依赖确切的路径,因为可能有来自 WhatsApp 和类似应用程序的图片,例如 WhatsApp 图像获取此路径:

/storage/emulated/0/WhatsApp/Media/WhatsApp Images/IMG-20160821-WA0000.jpg

我已经设法用空路径解决了这个问题:

<external-path name="external_storage" path=""/>

这类似于Environment.getExternalStorageDirectory()根据文档。 https://developer.android.com/reference/android/support/v4/content/FileProvider.html#SpecifyFiles

但仍然不知道如何处理存储在/storage/SOME_DIR/。请帮忙。


我认为这个问题是基于一个误解。

的目的文件提供者 https://developer.android.com/reference/android/support/v4/content/FileProvider.html is to grant访问(外部应用程序),您的应用程序已控制的文件。

您永远不会成功地使用自己的文件提供程序gain访问外部应用程序拥有的文件。

如果外部应用程序选择这样做,则由外部应用程序使用文件提供程序授予您该访问权限。

这似乎就是问题所要问的。如果我不明白你的问题,请告诉我,但如果我明白了,你想做的事情就行不通。

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

使用 FileProvider 从图库中选取图像文件 的相关文章

随机推荐

  • Google 云存储 - 签名网址 - 一次性访问

    我们计划使用 Google 云存储以及可以提供给用户的签名 URL 所以我们上传一个文档 生成签名的 url 使用此处提到的详细信息 https developers google com storage docs accesscontro
  • 基类和派生类中的依赖注入

    我有一个抽象的控制器基类 所有操作控制器都派生自它 基本控制器类在构造时初始化视图对象 所有动作控制器都使用此 View 对象 每个动作控制器都有不同的依赖关系 这是通过使用 DI 容器来解决的 问题是控制器基类还需要一些依赖项 或参数 例
  • 如何找出运算符“+”的类型?

    在 GHCi 版本 8 6 3 中 https repl it languages haskell https repl it languages haskell 我想知道如何找出运算符 的类型 我想看看它的类型是否是num a b c g
  • RSA:使用扩展欧几里得算法计算私钥

    我是一名高中生 正在写一篇关于 RSA 的论文 我正在用一些非常小的素数做一个例子 我了解系统的工作原理 但我一生都无法使用扩展欧几里得算法来计算私钥 这是我到目前为止所做的 我选择了质数 p 37 q 89 计算出 N 3293 我计算了
  • 在我的 Android 应用程序中禁用屏幕截图

    我有我当前的 Android 应用程序不允许用户截屏 我在用 getWindow setFlags LayoutParams FLAG SECURE LayoutParams FLAG SECURE 在我的 onCreate 方法中并且工作
  • 使用 OpenGL 的 2D 示例 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个非常简单的教程 仅使用 OpenGL 进行 2D 绘图 我的问题是我想用 OpenGL 绘
  • 陷入构建 MySQL 查询的困境

    给出一个表的例子 id item id user id bid price 任务是选择rows with minimum bid price对于每个item id在提供的集合中 例如 item id 1 2 3 所以我需要选择最多三 3 行
  • 计算列表中元素出现次数的Pythonic方法是什么?

    这就是我所做的 python 有更好的方法吗 for k in a list if kvMap has key k kvMap k kvMap k 1 else kvMap k 1 Thanks 使用默认字典 from collection
  • 如何找到这个堆栈跟踪?

    我的程序一直崩溃 但是logcat没有显示任何异常 我刚刚收到以下消息 以及大量有关 CPU 使用情况的统计信息 显然我使用了太多的 CPU 但我不知道我的程序的哪一部分正在执行此操作 下面的文件在哪里 我找不到它 12 30 23 13
  • 整数的布尔运算[重复]

    这个问题在这里已经有答案了 这可能是非常基本的 但我似乎不明白 如何 2 1 0 3 1 1 4 1 0 etc 上面的这个模式似乎有助于找到偶数 or 0 1 1 1 1 1 2 1 3 3 1 4 4 1 5 5 1 5 我知道布尔代数
  • 为什么人们在 C++ 中的头文件名中不使用大写字母?

    我想知道为什么人们不在头文件名称中使用大写字母 我看到许多头文件的名称仅是小写的 但我认为如果他们用大写字母写 比如 BaseClass h SubClass h 而不是 baseclass h subclass h 会更容易阅读 这是为什
  • Django - 更改内联表单集文本输入大小属性

    我有一个内联表单集 只有三个字段 class Estimate Product Details models Model proposalID models ForeignKey Estimate Construction verbose
  • v11.4.2 中的 FirebaseAuth signInWithEmailAndPassword() 没有响应

    我已升级到 Firebase Android 库 v11 4 2 以便在我的 Android 应用程序上试用 Firestore 但是 当我尝试使用 FirebaseAuth 通过 signInWithEmailAndPassword 登录
  • 如何使用 iOS 应用程序在 iPad/iPhone 中打开 PDF 文件?

    如何使用我自己的应用程序打开存储在 iPad iPhone 中的 PDF 文件 您可以使用 UIwebview 来加载它 这很简单 如果您想要更大的灵活性 您应该使用 Quartz 框架类 EDIT 要查看下载的 PDF 您可以在应用程序中
  • SubSonic 3 和 MySQL,在 CleanUp() 方法中从列名中删除下划线会导致在 linq-query 中使用属性时出现异常

    我在使用 SubSonic 3 0 0 3 ActiveRecord 和 MySQL 时遇到了问题 由于 MySQL 不允许您在表名或列名中使用大写字母 或者如果您这样做 则忽略它 我决定使用下划线分隔单词 例如entity id 然后使用
  • 如何将一个数字分成n组

    我需要将一个数字分成几组数字 然后将这些数字放入一个数组中 然后我将对这些数字进行一些简单的数学运算 然后将它们插入到文本框中 到目前为止 我只找到了如何将数字拆分为单独的数字 如下所示 var number 12354987 output
  • python Fabric是否支持动态设置env.hosts?

    我想动态更改 env hosts 因为有时我想先部署到一台机器 检查是否正常 然后部署到多台机器 目前我需要先设置 env hosts 如何在方法中设置 env hosts 而不是在脚本启动时全局设置 是的 你可以设置env hosts动态
  • MySQL > 表不存在。但它确实(或者应该)

    我更改了 MySQL 安装的数据目录 除了一个之外 所有库都正确移动 我可以连接并且USE数据库 SHOW TABLES还正确返回所有表 并且每个表的文件都存在于 MySQL 数据目录中 然而 当我尝试SELECT表中的某些内容 我收到一条
  • 内存分配问题

    这个问题是在面试的笔试中被问到的 include
  • 使用 FileProvider 从图库中选取图像文件

    编译 Android N 我遇到了一个问题FileProvider 我需要让用户从图库中选择图像 用相机拍照 然后将其裁剪为正方形 我已经成功实现了FileProvider用于用相机拍摄图像 但我在从图库中选取图像时遇到严重问题 问题是 在