DocumentFile - 直接访问底层文件

DocumentFile - direct access to underlying file

是否可以通过某种方式从 DocumentFile 中获取 File 对象?通过一些小技巧,我可以获得文件的真实路径,但是 File class 不允许 read/write 那里...

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

知道如何实现吗?

Is it somehow possible to get a File object from an DocumentFile?

没有

With some small trick I can get the real path of the file

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

get exif data from images

使用流,以及可以处理流的 EXIF 代码,例如 this one or this one,通过在互联网上搜索 android exif stream.

找到

ability to rotate images (this would be possible by creating a temp image, delete the old one and rename the temp image)

您无法选择创建本地副本、旋转图像,然后使用 OutputStream 将图像写回原始 DocumentFile。 "local copy" 是仅在 RAM 中,还是需要成为磁盘上的实际文件,这在一定程度上取决于您计划如何旋转它。