Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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 写入\u外部\u存储可能的目标文件夹_Java_Android_Android Permissions_Android Download Manager - Fatal编程技术网

Java 写入\u外部\u存储可能的目标文件夹

Java 写入\u外部\u存储可能的目标文件夹,java,android,android-permissions,android-download-manager,Java,Android,Android Permissions,Android Download Manager,当拥有写入外部存储权限时,我希望有权写入整个文件系统(例如/sdcard,/STORAGE/simulated/0,/STORAGE/sdcard0,/mnt/sdcard,…) 但由于内部FS结构不同,我无法真正判断目标设备上允许哪些文件夹 目前,我使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u DOWNLOADS)来获取下载文件夹,但我认为这不是唯一允许使用的文件夹 因此,下面有两个问题: 有没有

当拥有
写入外部存储
权限时,我希望有权写入整个文件系统(例如
/sdcard
/STORAGE/simulated/0
/STORAGE/sdcard0
/mnt/sdcard
,…)

但由于内部FS结构不同,我无法真正判断目标设备上允许哪些文件夹

目前,我使用
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u DOWNLOADS)
来获取下载文件夹,但我认为这不是唯一允许使用的文件夹

因此,下面有两个问题:

  • 有没有办法知道我可以在这样的权限下写哪些文件夹
  • 当使用DownloadManager时,第一个问题是否可能是目标文件夹

  • 使用
    Environment.getExternalStorageDirectory()
    获取可用的外部存储目录

    您将获得Android外部存储目录。如果用户已将此目录装载到其计算机上、已从设备中删除或发生其他问题,则当前可能无法访问此目录。您可以使用
    getExternalStorageState()
    确定其当前状态

    注意:这里的“外部”一词不要混淆。这个目录 最好将其视为介质/共享存储。它是一个 可以保存相对大量的数据,并且可以跨多个服务器共享 所有应用程序(不强制执行权限)。传统上这是 SD卡,但它也可以作为 与受保护的内部存储器不同的设备,可以 作为文件系统安装在计算机上


    对于android,只有一个外部存储,它通过
    getExternalStorageDirectory()
    返回,因此默认情况下应该使用它


    但是,公共挂载点通常对运行应用程序的用户进程具有
    rw
    权限,因此您也可以在那里编写。获得根权限,您几乎可以在任何地方进行写操作。

    使用时,您不必担心您提到的各种路径(
    /sdcard
    /storage/simulated/0
    /storage/sdcard0
    /mnt/sdcard
    )。通常,它们都指向同一个地方。这只返回一个目录,它是唯一允许我使用的目录吗?这是根目录。您可以读取/写入此目录或其子目录中的任何内容。我提到了我的问题,例如在我的三星Galaxy Nexus中有许多装载点,并且以某种方式我可以读取/写入其他目录。