SD-карта не установлена (приложение для Android в затмении)

1

Я новичок в разработке Android с Eclipse, и мне сложно определить, как настроить приложение, чтобы он мог читать/записывать текст на виртуальную SD-карту.

Я сделал много google'ing и нашел бит и куски, но я все еще чувствую, что мне не хватает чего-то, что делает его неработоспособным.

В моем манифесте я включил:

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

Вот мой код:

String state=Environment.getExternalStorageState();
    if(!state.equals(Environment.MEDIA_MOUNTED))
        data.setText("SD card not mounted");
    else
    {
        File externalDir=Environment.getExternalStorageDirectory();
        File textFile=new File(externalDir.getAbsolutePath()+File.separator+"text.txt");
        try
        {
            writeTextFile(textFile, "this is a test\n LINE BREAK");
            String text=readTextFile(textFile);
            data.setText(text);
            if(!textFile.delete())
            data.setText("couldn't remove temporary dir");
        }
        catch(Exception e)
        {
            data.setText(e.getMessage());
        }
    }

 private void writeTextFile(File file, String text) throws IOException
{
    BufferedWriter writer = new BufferedWriter(new FileWriter(file));
    writer.write(text);
    writer.close();
}
private String readTextFile(File file) throws IOException
{
    BufferedReader reader = new BufferedReader(new FileReader(file));
    StringBuilder text=new StringBuilder();
    String line;
    while((line=reader.readLine())!=null)
    {
        text.append(line);
        text.append("\n");
    }
    reader.close();
    return text.toString();
}

У меня есть первая часть кода в функции нажатия кнопки, а переменная "data" предназначена для просмотра editText. Каждый раз, когда я запускаю его и нажимаю кнопку, я получаю результат "SD-карта не смонтирована".

Я знаю, что мне не хватает важного шага, чтобы это нормально функционировало. Может ли кто-нибудь помочь мне, пожалуйста? Спасибо!

  • 0
    Вы говорите «виртуальная SD-карта», поэтому я предполагаю, что это с эмулятором, а не реальным устройством? И вы настроили AVD для эмулятора, чтобы использовать виртуальную SD-карту?
  • 0
    На данный момент я чувствую себя действительно глупым. Да, я использую эмулятор. И я только что понял, что мне нужно отредактировать AVD, чтобы использовать виртуальную SD-карту. Мне было так трудно понять это при чтении в инструкции. Ну, это работает сейчас. В любом случае спасибо!
Показать ещё 2 комментария
Теги:
sd-card

2 ответа

0

Я столкнулся с этой проблемой с новым Android 6. + avd, где я не настраивал SD-карту, когда я впервые запускал avd. Он не создал символическую ссылку правильно.

Он был связан с: /mnt/user/0/primary

Вот символические ссылки

/sdcard -> /storage/self/primary
cd /storage/self
ls -la
primary -> /mnt/user/0/primary
cd /mnt/user/0/

Не было создано основного каталога. Я воссоздал avd и прошел процесс настройки SD-карты, и теперь жизнь великолепна!

0

Я думаю, что вы столкнулись с этой проблемой, потому что ваш эмулятор может быть неправильно настроен для использования (или обеспечения) функциональности SD-карты.

Поэтому я предлагаю вам посетить AVD Manager> Edit AVD> Укажите размер требуемой SD-карты.

Также не забудьте добавить Hardware Property в тот же avd. Выберите "Создать"> " Поддержка SD-карт "> установите значение "true".

Я думаю, что это решит проблему. Если это все еще имеет значение - сделайте отчет здесь! Удачи! :)

Ещё вопросы

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