我在我的应用程序中使用Storage Access Framework(SAF)。为了扫描文件(照片或文档),我需要通过API发送本地文件路径。我设法正确设置了SAF,现在当用户选择一个文件时,我得到了应该的Uri。

看来,Uri是云的密钥,而不是本地文件。

Uri值如下所示:

content://com.android.providers.media.documents/document/image:11862


如何将该Uri转换为本地文件?我应该从云端下载文件吗?我该怎么做?

最佳答案

看来,Uri是云的密钥,而不是本地文件。


Uri是对内容的不透明引用。您无法知道数据在哪里,也不必关心。


  如何将该Uri转换为本地文件?


理想情况下,您不需要。理想情况下,您可以使用支持InputStream的某些库来“扫描文件(照片或文档)”。在这种情况下,您可以使用ContentResolveropenInputStream()将流传递到库。

如果您的库不支持InputStream作为数据源,则需要自己使用openInputStream(),并使用Java I / O将内容的副本作为文件系统中的文件复制,以便传递给该库。

10-07 19:25
查看更多