Нет подключенной SD-карты при хранении файла на SD-карте

1

У меня есть файл в /data/data<package name>/files/settings.dat и вы хотите сохранить/скопировать этот файл на SD-карте, файл хорошо читается, но при попытке скопировать его на SD-карту у меня есть исключение: sdacrd не монтируется. Я добавил правильную строку в androidmanifest.xml и добавил виртуальную SD-карту в эмулятор. -sdcard /Users/Alaeddine/Documents/workspace/android_sdcard Код:

public void transfer(){
    File sdCard = Environment.getExternalStorageDirectory();
    if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) 
    {
       Log.d("Carburant", "Sdcard was not mounted !!" ); 
    }
  else
    {
      File nmea_file; 
      File root = Environment.getExternalStorageDirectory();
      FileWriter nmea_writer = null;
      try {
          nmea_file = new File(root,"settings.dat");
          if(!nmea_file.exists()) {
                  Log.w("Carburant", "File Doesn't Exists!");
                  nmea_file.createNewFile();
              }
    copyfile(nom,sdCard.getAbsolutePath() + nmea_file);
      }
      catch (IOException e) 
      {
          Log.w("Carburant", "Unable to write", e);
      } 
      finally 
      {
          if (nmea_writer != null) 
          {
              try 
              {
                  nmea_writer.close();
              } 
              catch (IOException e) 
              {
                  Log.w("Carburant", "Exception closing file", e);
              }
          }
      }
    }

}

Как я могу решить эту проблему? Благодарим вас за помощь.

  • 0
    Вы уверены, что не подключили SD-карту к своему компьютеру, когда подключены к сети, и забыли отключить ее во время работы приложения? Я делаю это иногда и забываю об этом ... Редактировать: К сожалению, извините, не понял, что вы используете эмулятор. Вы можете зайти в настройки на эмуляторе и убедиться, что sdcard смонтирован. Если это не сработает, найдите и создайте виртуальную SD-карту на эмуляторе из командной строки.
  • 1
    заголовок вопроса гласит: «Отказано в доступе», а в вашем тексте говорится: «sdacrd не подключен» Можете ли вы указать, в чем именно ошибка, пожалуйста?
Показать ещё 3 комментария
Теги:
file-io

1 ответ

1

Фактически вы определили SD-карту в эмуляторе? Вы должны определить его при создании AVD в приложении менеджера AVD (но вы можете изменить существующий AVD и добавить SD-карту позже).

В unix вы можете запустить AVD-менеджер с помощью

$ android 

учитывая, что папка android-sdk/tools находится на вашем пути.

См. также http://developer.android.com/guide/developing/devices/index.html для этого.

  • 0
    @ Heiko Rupp: да, я думаю, что эта команда добавляет SDCard! я проверил в настройках-хранилище и он показывает все недоступно, так что нет sdcard! Итак, как добавить виртуальный?
  • 1
    выполните команду android чтобы отобразить список виртуальных устройств и проверить, есть ли на устройстве определенная sdcard. Можно создавать устройства без (или с размером 0).
Показать ещё 6 комментариев

Ещё вопросы

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