困惑:context.getExternalFilesDir与Environment.getExternalStorageState();

时间:2013-08-02 02:14:04

标签: android file-permissions file-handling

我正在各种模拟设备上使用Android Studio进行开发。

Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())

总是返回false UNTIL我选择在模拟设备上模拟SD卡。

http://developer.android.com/training/basics/data-storage/files.html的文件特别指出

  

“无论外部存储是否可移动,总有两个存储空间,API行为是相同的。”

这似乎表明外部存储不需要参考实际的SD卡,也可能是内部存储卡。因此,为什么我需要将模拟SD卡的大小设置为大于零才能使该代码生效?我误解或遗失了什么?

此外,context.getExternalFilesDir是否引用与Environment.getExternalStorageState相同的目录标志?

谢谢,

1 个答案:

答案 0 :(得分:0)

您需要选择模拟SD卡以指示您具有外部存储关联的模拟器。你所说的是正确的,外部存储可以是可移动存储介质(如SD卡)或内部(不可移动)存储。

是的,context.getExternalFilesDir根据文档返回外部文件系统上目录的绝对路径,因此引用与Environment.getExternalStorageState

相同的目录标志