我还在搜索,但也许有人面临同样的问题。
我正在维护一个应用程序。这个应用程序将一些数据存储在两个地方(比如sdcard / example和external_memory / example)。在迁移到最新的Android Api之前,使用ExternalStorage.getAllExternalStoragePaths()
一切正常。现在我仍然能够获得两个路径,但sdcard / example路径不可读且不可写。
我读到了SAF,但在我的情况下,这不是一个解决方案 - 存储在两个目录中的文件都使用本机库(C ++)进行解析 - 我需要像/storage/sdcard/example/test.xml
那样的路径。否则库无法读取此文件。不幸的是,由于缺少来源,我无法更改库。
我想问三个问题:
利益相关方无法接受将文件移至/storage/sdcard/Android/data/com.example/files/
。
答案 0 :(得分:1)
还有其他方法要求访问SD卡上的目录并像旧方式一样使用此目录吗?
不,没有构建自定义ROM或生根设备。
也许我可以说Android - "嘿,我想在SD卡上安装示例目录并维护它"?
没有。最接近的是getExternalFilesDirs()
,getExternalCacheDirs()
和getExternalMediaDirs()
。如果那些返回2个以上的项目,则第二个和后续的项目将在可移动媒体上,您可以读取和写入这些路径。但是,您无法控制路径。
或者我可以在没有ContentResolver的情况下使用SAF吗?
不,只要你无法获得文件系统路径。