SD-карта не установлена ​​(приложение для Android в затмении) - PullRequest
1 голос
/ 02 декабря 2011

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

Я много гуглил и нашел кусочки, но я все еще чувствую, что упускаю что-то, из-за чего это не работает.

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

<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-карта не установлена».

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

Ответы [ 2 ]

0 голосов
/ 05 мая 2016

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

Было добавлено следующее: /mnt/user/0/primary

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

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

Первичный каталог не создан. Я воссоздал AVD и прошел процесс настройки SDCard, и теперь жизнь прекрасна!

0 голосов
/ 05 декабря 2012

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

Поэтому я бы предложил вам посетить диспетчер AVD> Редактировать AVD> Укажите необходимый размер SD-карты.

Также не забудьте добавить свойство оборудования к тому же AVD. Выберите «Создать»> « Поддержка карт SD »> установите значение true .

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

...