Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android SAF可以访问SD卡上的特定目录_Java_Android_Android Sdcard_Android Storage - Fatal编程技术网

Java Android SAF可以访问SD卡上的特定目录

Java Android SAF可以访问SD卡上的特定目录,java,android,android-sdcard,android-storage,Java,Android,Android Sdcard,Android Storage,我仍在寻找,但可能有人面临同样的问题。 我正在维护一个应用程序。这个应用程序将一些数据存储在两个地方(比如SD卡/示例和外部内存/示例)。在迁移到最新的Android Api之前,使用ExternalStorage.getAllExternalStoragePaths()一切正常。现在我仍然能够获得这两个路径,但SD卡/示例路径既不可读也不可写 我读过关于SAF的文章,但在我的例子中,这不是一个解决方案-存储在两个目录中的文件都是使用本机库(C++)解析的-我需要它的路径,如/storage/s

我仍在寻找,但可能有人面临同样的问题。 我正在维护一个应用程序。这个应用程序将一些数据存储在两个地方(比如SD卡/示例和外部内存/示例)。在迁移到最新的Android Api之前,使用
ExternalStorage.getAllExternalStoragePaths()
一切正常。现在我仍然能够获得这两个路径,但SD卡/示例路径既不可读也不可写

我读过关于SAF的文章,但在我的例子中,这不是一个解决方案-存储在两个目录中的文件都是使用本机库(C++)解析的-我需要它的路径,如
/storage/sdcard/example/test.xml
。否则,库将无法读取此文件。不幸的是,由于缺少源,我无法更改库

我想问三个问题:

  • 是否有其他方法要求访问SD卡上的目录,并像以前一样使用此目录
  • 也许我可以说Android——“嘿,我想在SD卡上有一个示例目录并维护它”
  • 或者我可以在不使用ContentResolver的情况下使用SAF
利益相关者不接受将文件移动到
/storage/sdcard/Android/data/com.example/files/

是否有其他方法要求访问SD卡上的目录,并像以前一样使用此目录

不,除了构建自定义ROM或根设备

也许我可以说Android——“嘿,我想在SD卡上有一个示例目录并维护它”

不是。最接近的是
getExternalFilesDirs()
getExternalCacheDirs()
,和
getExternalMediaDirs()
。如果这些返回2+个项目,则第二个和后续的项目将位于可移动介质上,您可以读取和写入这些路径。但是,您无法控制路径是什么

或者我可以在不使用ContentResolver的情况下使用SAF


不可以,因为您无法获取文件系统路径。

是否可以在SD卡中以静默方式写入.nomedia文件。我不希望用户看到“选择路径”对话框和所有内容。