棒棒糖SDCard文件写入

Lollipop SDCard Document write

我有一个接受文件对象并对其进行修改的第三方库。 现在使用

获得 SD 卡的权限后
 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);

并选择SD卡根。

然后用户浏览他想要修改的文件。现在这个 我需要传递给第三方库的文件路径/文件对象 class.

 DocumentFile documentFile = DocumentFile.fromFile(file);
 String documentURI = documentFile.getUri().toString();
 MP3File mp3File = null;

 documentFile = DocumentFile.fromFile(file);
 mp3File = new MP3File(file.getAbsolutePath());

此处 MP3File class 接受文件路径。但是这个 class 没有任何文档构造函数。

我可以将文档转换为可写文件并用原始文件替换吗?或者有什么更简单的解决方案吗?

Now after getting the permission to SD card using... And selecting SD card root.

不要求用户选择任何特定文档。文档可能位于可移动存储、外部存储、Google驱动器、Dropbox、文件服务器或用户可以访问的任何其他地方。

Now this file's path/ file object I need to pass to the third party library class.

该文档没有 "path/file object"。

Here MP3File class accepts file path

任一:

  • 找到一个更好的库,一个接受 InputStream and/or OutputStream 的库,这样您就可以在它所在的位置使用文档,或者

  • 使用JavaI/O将文档的内容复制到您控制的本地文件,然后将该文件传递给图书馆