Android Emulator QVGA中的SD卡问题

时间:2011-03-22 12:01:00

标签: android android-emulator

我的应用程序使用SD卡上的数据目录来存储文件。在启动时,如果该目录尚不存在,则会创建该目录。出于某种原因,这适用于我设置的不同AVD,除非我将分辨率设置为QVGA时无法使其工作。

代码很无聊:

File root = new File("/sdcard/mydir");
if(!root.exists()) {
  try {
    root.mkdir();
  }
  catch...

mkdir()返回false。

任何想法为什么?

2 个答案:

答案 0 :(得分:3)

创建QVGA AVD时可能忘记设置SD卡。尝试重新设置。

此外,您不应该硬编码到外部存储的路径。 http://developer.android.com/guide/topics/data/data-storage.html解释了一些访问外部存储的API。

以下代码段可能会检测到一些安装问题。

boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();

if (Environment.MEDIA_MOUNTED.equals(state)) { // We can read and write the media mExternalStorageAvailable = mExternalStorageWriteable = true; } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { // We can only read the media mExternalStorageAvailable = true; mExternalStorageWriteable = false; } else { // Something else is wrong. It may be one of many other states, but all we need // to know is we can neither read nor write mExternalStorageAvailable = mExternalStorageWriteable = false; }

答案 1 :(得分:0)

事实证明我忘记了将SD卡许可添加到我的清单中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

未经许可,该程序适用于除QVGA之外的所有模拟器,甚至在我的Droid上。