当前位置: 首页 > 知识库问答 >
问题:

从内容URI获取搜索图像的绝对文件路径

钱修雅
2023-03-14

我正在尝试使用隐式意图操作_SEND将其他应用程序中的图像共享到我的应用程序中。

当从chrome浏览器共享搜索图像时,应用程序接收到一个内容URI,如下所示:content://com.android.chrome.FileProvider/images/screenshot/1457448067808912906311.jpg

如何从这种类型的内容URI获取文件路径?所有其他应用,比如Facebook、谷歌都在这么做。我使用FileChooser获取其他类型内容URI的文件路径(例如,从Gallery)。

试着到处寻找,但没有太多帮助。有人能建议如何使用这些内容URI吗?

共有2个答案

孟鹏海
2023-03-14

如何从这种类型的Content URI获取文件路径?

您不需要,因为在Uri后面根本不需要有一个文件,更不用说您可以访问的文件了。

  • 外部存储器上的本地文件
  • 另一个应用的内部存储上的本地文件
  • 可移动存储上的本地文件
  • 加密的本地文件,需要动态解密
  • 数据库中BLOB列中保存的字节
  • 需要另一个应用程序先下载的内容
  • 。。。等等

Facebook、谷歌等所有其他应用都在这么做

不,不是。他们正在使用ContentResolver和:

  • openInputStream()在与内容相关联的字节中读取
  • getType()获取与内容关联的MIME类型
  • Query()Openable列获取与内容相关联的大小和显示名称
金霄
2023-03-14

如果您确实需要文件的本地副本,则需要打开InputStream将内容复制到您知道路径的本地文件,然后从那里开始。旁注:番石榴的ByteStreams#copy是实现这一点的简单方法。

当然,这个文件不再由原始的Uri源支持,所以我不认为这是您想要的。相反,您应该使用Uri的预期应用编程接口。看看存储访问框架

编辑

下面是如何从Uri

InputStream inputStream = getContentResolver().openInputStream(uri);
 类似资料:
  • 我正在尝试获取内容URI的文件路径。URL如下所示:content://com.android.providers.downloads.documents/document/31 游标对象不是null,但cursor.getString(column_index)返回null。 列索引始终为0。 编辑:内容URI是从文件管理器返回的,因此它应该表示实际的文件。

  • 问题内容: 是否有任何API可以从绝对文件路径检索文件名? 例如来自 我知道它可以像字符串操作一样工作, 但是我想知道还有没有像Java 这样的“正式”方式可以做到这一点。 NodeJS从绝对路径获取文件名? 问题答案: 使用模块的方法: 这是上面示例的文档。

  • 我也试着做 而我不断得到这个结果。

  • 我下面有一个方法:

  • 当我从图库中选择一个图像时,我可以获得该图像的Uri,如下所示: 上面检索到的Uri的格式是content://media/external/images/media/7266 但是,当我试图获取刚保存为文件的图像的Uri时,无法以这种格式检索Uri: 从上面的代码获得的Uri是/storage/emulated/0/dcim/camera/02-04-16 12-49-16.png 我相信,这不

  • 本文向大家介绍获取Java中文件的绝对路径,包括了获取Java中文件的绝对路径的使用技巧和注意事项,需要的朋友参考一下 方法java.io.File.getAbsolutePath()用于获取字符串形式的文件的绝对路径。此方法不需要任何参数。 演示此的程序如下所示- 示例 上面程序的输出如下- 输出结果 现在让我们了解上面的程序。 使用方法java.io.File.getAbsolutePath(