从下载文件夹Android获取路径图像时出错

时间:2017-02-22 17:31:38

标签: android file

我使用此方法从uri获取文件路径:

Map<Integer, ArrayList<String>>

如果我尝试从图库文件中获取文件路径,则可以完美地运行。但是,当我尝试从下载文件夹中的图像文件中获取路径文件时,无法正常工作。有什么建议。非常感谢你提前。

1 个答案:

答案 0 :(得分:2)

  

我使用此方法从uri

获取文件路径

这不会起作用。

  

如果我尝试从图库中的图像文件中获取文件路径,那么

不在所有设备上,也不适用于所有图像。

  

任何建议

您似乎认为Uri必须映射到文件,您可以找到该文件的路径,并且路径将是您可以使用的路径。

这些都不是真的。

如果 Uri的方案恰好是file那么 getPath()将是一个文件系统路径,指向一个(大概)你可以访问的文件。

如果方案是content,则Uri可以指向任何

  • 您可以访问的外部存储上的文件
  • 您无法访问的可移动存储上的文件
  • 另一个应用内部存储的文件,您无法访问
  • 另一个应用的资产,不是文件
  • 数据库的BLOB列中的值,该值不是文件
  • 动态生成的值,即此网页的方式,不是文件
  • 将从互联网流式传输的内容,该内容不是设备上的文件
  • 等等

使用ContentResolveropenInputStream()(可能还有openOutputStream())来处理Uri标识的内容。