Невозможно записать файлы на эмуляторе Android SDCard - PullRequest
2 голосов
/ 25 декабря 2011

Я пытаюсь записать MIDI-файл на SD-карту.Это работает на моем устройстве, но не в эмуляторе.Вот ошибка в logCat:

12-25 09:18:27.733: W/ExternalStorage(1951): Error create /sdcard/download/test.mid
12-25 09:18:27.733: W/ExternalStorage(1951): java.io.FileNotFoundException: /sdcard/download/test.mid
12-25 09:18:27.733: W/ExternalStorage(1951):    at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:244)
12-25 09:18:27.733: W/ExternalStorage(1951):    at java.io.FileOutputStream.<init>(FileOutputStream.java:97)
12-25 09:18:27.733: W/ExternalStorage(1951):    at java.io.FileOutputStream.<init>(FileOutputStream.java:168)
12-25 09:18:27.733: W/ExternalStorage(1951):    at java.io.FileOutputStream.<init>(FileOutputStream.java:147)

Я установил разрешение в файле манифеста и изменил путь с "/sdcard/download/test.mid" на Environment.getExternalStorageDirectory () + "/download / test.mid ", но все еще не работает.

К вашему сведению, я использую MidiFile Кевина Буна, и вот мой код:

String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        mf.writeToFile(Environment.getExternalStorageDirectory()+"/download/test.mid");
    }

Ответы [ 2 ]

2 голосов
/ 25 декабря 2011

Ну, во-первых, убедитесь, что у вас есть соответствующее разрешение, если вы не добавили его в свой AndroidManifest.xml

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

Во-вторых, вы также должны проверить, существует ли папка для скачивания, если нет необходимости создавать ее. Проверьте, существует ли метод из класса Файл .

Если вы посмотрите на метод Кевина MidiFile, используйте его только для создания файла по определенному пути, но это не гарантирует, что путь к вашей работе существует

mg.writeToFile ("somefile.mid");
1 голос
/ 09 октября 2012

Я бы посоветовал проверить, если у вас есть sdcard, созданный в emaulator, с разрешениями для записи на него.

См. Следующее: Ошибка отправки sdcard эмулятора Android: файловая система только для чтения

Как только вы закончите этот шаг, я думаю, что он будет работать и для вас программно.

...