我在 Lollipop 遇到了这样的情况:
- 由用户授予的目录树(
DocumentFile
)。 从媒体提供商检索到的需要修改的音频文件集合。
Uri mediaUri = Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, "45");
那么,如何将流写入这些文件之一?
我想,这个https://stackoverflow.com/a/30514269/615025给出了解决方法。将文件的字节复制到缓存目录,对临时文件进行修改,然后将字节复制回原始文件。
DocumentFile是一种新机制,允许我们修改 Lollipop 中的文件。这与这篇文章how to get contact photo URI的情况不一样。 谢谢
最佳答案
您可以使用 ContentResolver.openOutputStream(Uri)
直接从 Uri 打开输出流
例如,
OutputStream fos;
fos = new BufferedOutputStream(context.getContentResolver().openOutputStream(uri));
可选,openOutputStream
接受一个字符串来指定模式。
即
openOutputStream(uri, "w");
写或
openOutputStream(uri, "wa");
追加。
关于android - 如何从媒体真实路径获取可写的DocumentFile Uri?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30293151/