我正在尝试使用隐式意图操作_SEND将其他应用程序中的图像共享到我的应用程序中。
当从chrome浏览器共享搜索图像时,应用程序接收到一个内容URI,如下所示:content://com.android.chrome.FileProvider/images/screenshot/1457448067808912906311.jpg
如何从这种类型的内容URI获取文件路径?所有其他应用,比如Facebook、谷歌都在这么做。我使用FileChooser获取其他类型内容URI的文件路径(例如,从Gallery)。
试着到处寻找,但没有太多帮助。有人能建议如何使用这些内容URI吗?
如何从这种类型的Content URI获取文件路径?
您不需要,因为在Uri
后面根本不需要有一个文件,更不用说您可以访问的文件了。
BLOB
列中保存的字节流Facebook、谷歌等所有其他应用都在这么做
不,不是。他们正在使用ContentResolver
和:
openInputStream()
在与内容相关联的字节中读取getType()
获取与内容关联的MIME类型Query()
和Openable列
获取与内容相关联的大小和显示名称如果您确实需要文件的本地副本,则需要打开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(