Проблема с SD-картой в Android Emulator QVGA - PullRequest
1 голос
/ 22 марта 2011

Мое приложение использует каталог данных на SD-карте для хранения файлов.При запуске он создает этот каталог, если его еще нет.По некоторым причинам это работает на различных AVD, которые я настроил, за исключением того, что я не могу заставить его работать, если я установил разрешение на QVGA.

Код скучный:

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

mkdir () возвращает false.

Есть идеи почему?

Ответы [ 2 ]

3 голосов
/ 22 марта 2011

Возможно, вы забыли настроить SD-карту при создании QVGA AVD.Попробуйте настроить его снова.

Кроме того, вам не следует жестко задавать путь к внешнему хранилищу.http://developer.android.com/guide/topics/data/data-storage.html объясняет некоторые API для доступа к внешнему хранилищу.

В следующем фрагменте кода могут обнаруживаться некоторые проблемы с монтированием.

boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();</p>

<p>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;
}
0 голосов
/ 06 апреля 2011

Оказывается, я забыл добавить разрешение SD-карты в мой манифест:

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

Без разрешения программа работала на всех эмуляторах, кроме QVGA, и даже на моем Droid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...