0

是否有可能从 中获取File对象DocumentFile?通过一些小技巧,我可以获得文件的真实路径,但File不允许该类在那里读/写......

我需要从 USB OTG 或辅助存储访问媒体文件,我需要以下功能:

  • 从图像中获取 exif 数据 => 我真的需要它
    • 获取图像的位置
    • 获取图像的真实创建日期
    • 实际上,为了显示目的,我需要所有 exif 数据
  • 旋转图像的能力(这可以通过创建临时图像,删除旧图像并重命名临时图像来实现)

关于如何实现这一目标的任何想法?

4

1 回答 1

2

是否有可能从 DocumentFile 中获取 File 对象?

不。

通过一些小技巧,我可以获得文件的真实路径

不可靠。毕竟,存储访问框架不需要有一个实际的文件。各种DocumentProvider实现都脱离了云服务,在需要之前,数据不会本地存储在设备上。除此之外,您使用的任何方法都取决于可能因设备而异的内部实现,更不用说 Android 操作系统版本了。而且,最重要的是,即使您派生了路径,您仍然不一定能访问数据,因为您可能没有文件系统访问该位置的权限(例如,内部存储中保存的文件DocumentProvider)。

从图像中获取exif数据

使用流,以及可以处理流的EXIF 代码,例如通过在 Internet 上搜索.android exif stream

旋转图像的能力(这可以通过创建临时图像,删除旧图像并重命名临时图像来实现)

您无法选择制作本地副本、旋转图像,然后DocumentFile使用OutputStream. 该“本地副本”是否仅在 RAM 中,或者需要成为磁盘上的实际文件,这在一定程度上取决于您计划如何旋转它。

于 2016-01-30T21:04:43.380 回答