我正在我的应用中使用
似乎Uri是云端的密钥,而不是本地文件。
Uri的值看起来像这样:
存储访问框架(SAF)
。为了扫描文件(照片或文档),我需要通过API发送本地文件路径。我已经成功设置了SAF
,现在当用户选择文件时,我会得到一个Uri。似乎Uri是云端的密钥,而不是本地文件。
Uri的值看起来像这样:
content://com.android.providers.media.documents/document/image:11862
我该如何将这个Uri转换成本地文件?我需要从云端下载文件吗?怎么做呢?
InputStream
将内容复制到您控制的文件中(例如,在getCacheDir()
中)。然后,将该文件的路径传递给库。 - CommonsWareACTION_OPEN_DOCUMENT_TREE
获取了Uri
,理论上它们可以在其中创建任何所需内容。 "tree"Uri
是存储访问框架中目录的等效项,因此库可以使用DocumentFile
和ContentResolver
在该树内创建文档。或者,让库将内容下载到您控制的目录中,然后您可以担心将内容传输到文档树中。或者,跳过存储访问框架并坚持使用文件系统。 - CommonsWare