WRITE_EXTERNAL_STORAGE可能的目标文件夹

时间:2013-08-16 07:55:48

标签: java android android-permissions android-download-manager

获得WRITE_EXTERNAL_STORAGE权限后,我希望有权在整个文件系统上进行编写(例如/sdcard/storage/emulated/0/storage/sdcard0,{{1} },...)

但由于内部FS结构不同,我无法确定目标设备上允许的文件夹是什么。

目前我使用/mnt/sdcard获取下载文件夹,但我认为这不是我唯一允许使用的文件夹。

接下来是两个问题:

  1. 有没有办法找到我可以用这种许可写的文件夹?
  2. 使用DownloadManager时,第一个问题可能是目标文件夹吗?

2 个答案:

答案 0 :(得分:2)

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

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

  

注意:不要在这里混淆“外部”这个词。这个目录   可以更好地被视为媒体/共享存储。它是一个文件系统   可以容纳相对大量的数据,并且可以共享   所有应用程序(不强制执行权限)。传统上这是   SD卡,但它也可以作为内置存储器实现   与受保护的内部存储区别的设备,可以是   作为文件系统安装在计算机上。

答案 1 :(得分:0)

对于android,只有一个外部存储,它通过getExternalStorageDirectory()返回的存储,所以你应该默认使用它。

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