Проблема с SD-картой в Android Emulator QVGA

1

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

Код скучный:

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

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

Любые идеи, почему?

Теги:
android-emulator

2 ответа

0
Лучший ответ

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

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

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

3

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

Кроме того, вы не должны быть жестким путем кодирования внешнего хранилища. 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(состояние)) {   // Мы можем читать и писать медиа   mExternalStorageAvailable = mExternalStorageWriteable = true; } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {   // Мы можем читать только носители   mExternalStorageAvailable = true;   mExternalStorageWriteable = false; } else {   // Что-то еще не так. Это может быть одно из многих других государств, но все, что нам нужно   // знать, мы не можем ни читать, ни писать   mExternalStorageAvailable = mExternalStorageWriteable = false; }

  • 0
    Я установил AVD много раз. У него обязательно должна быть SD-карта. Я настроил его так же, как и на экранах других размеров, но по некоторым причинам QVGA никогда не работает. Спасибо за другие советы, хотя.
  • 1
    Это было для меня! Я оставил поле SD-карты пустым в настройках эмулятора и, конечно же, в моем эмуляторе была / mnt / sdcard, но его нельзя было использовать. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню