我在我的应用程序中使用Storage Access Framework(SAF)
。为了扫描文件(照片或文档),我需要通过API发送本地文件路径。我设法正确设置了SAF
,现在当用户选择一个文件时,我得到了应该的Uri。
看来,Uri是云的密钥,而不是本地文件。
Uri值如下所示:
content://com.android.providers.media.documents/document/image:11862
如何将该Uri转换为本地文件?我应该从云端下载文件吗?我该怎么做?
最佳答案
看来,Uri是云的密钥,而不是本地文件。Uri
是对内容的不透明引用。您无法知道数据在哪里,也不必关心。
如何将该Uri转换为本地文件?
理想情况下,您不需要。理想情况下,您可以使用支持InputStream
的某些库来“扫描文件(照片或文档)”。在这种情况下,您可以使用ContentResolver
和openInputStream()
将流传递到库。
如果您的库不支持InputStream
作为数据源,则需要自己使用openInputStream()
,并使用Java I / O将内容的副本作为文件系统中的文件复制,以便传递给该库。