我对Android中的SAF(存储访问框架)感到困惑和无助

时间:2016-08-25 21:39:19

标签: android

我有一个关于来自MediaStore的媒体文件以获取输出流> = Android 5的问题。

我的问题是从MediaStore Uri获取一个树文档uri(用于写访问),如“content:// media / external / images / media / 334”, 那是不是没有api?

我已经在Intent.ACTION_OPEN_DOCUMENT_TREE上设置了写权限。但获得媒体文件写入权限的唯一方法是目前只手动制作一个Tree-Document uri,如“content://com.android.externalstorage.documents/tree/1C10-2004%3A/document/1C10-2004%3Amatze %2FIMG_20160825_191301.jpg“

我有腹痛来构建我自己的树uri,有没有办法在Android API上做到这一点? (我只需要一个输出流到MediaStore文件)

由于

1 个答案:

答案 0 :(得分:0)

  

那没有api吗?

关闭袖带,看起来不像是从Uri检索到的ACTION_OPEN_DOCUMENT_TREE。只有ACTION_OPEN_DOCUMENT_TREEfromTreeUri()上的DocumentFile一起使用。

  

我只需要一个输出流到MediaStore文件

理论上,使用openOutputStream()ContentProvider上拨打Uri。如果此Uri是单个内容,则它不是树。

现在,我不知道你是如何得到Uri的,因为你没有在你的问题中解释这一点。请注意you only have access to the content identified by a Uri for a short time

  

但是获得媒体文件写入权限的唯一方法是目前只能手动创建一个像Tree-Document一样的文件

这看起来也不像树。它看起来像是一段内容,特别是JPEG。

如果Uri在您获得openOutputStream()后立即无法直接使用Uri,那么您可能应该使用其他机制来获取Uri的地方。