С Android-эмулятором я не могу записать / создать файл на SD-карте (для регистрации).
Вот что я сделал до сих пор
- Запустите mksdcard 8192K C: \ android-dev \ emu_sdcard \ emu_logFile
- Создайте новый AVD, когда присвойте ему файл emu_logFile, чтобы при просмотре сведений AVD было указано C: \ android-dev \ emu_sdcard \ emu_logFile для поля «SD-карта»
- Вот соответствующий код
public class ZLogger {
static PrintWriter zLogWriter = null;
private static void Initialize() {
try {
File sdDir = Environment.getExternalStorageDirectory();
if (sdDir.canWrite()) {
:
File logFile = new File (sdDir, VERSION.RELEASE + "_" + ".log");
FileWriter logFileWriter = new FileWriter(logFile);
zLogWriter = new PrintWriter(logFileWriter);
zLogWriter.write("\n\n - " + date + " - \n");
}
} catch (IOException e) {
Log.e("ZLogger", "Count not write to file: " + e.getMessage());
}
}
sdDir.canWrite возвращает false - обратите внимание, это не исключение
из оболочки adb, когда я делаю ls, я вижу sdcard как ссылку на / mnt / sdcard. Когда я делаю ls -l / mnt, вот что я вижу
ls -l / mnt
ls -l / mnt
корневая система drwxr-xr-x 2010-12-24 03:41 asec
drwx ------ root root 2010-12-24 03:41 secure
d --------- системная система 2010-12-24 03:41 sdcard
тогда как, если я иду в каталог, где я создал emu_sdcard - я вижу, что была выпущена блокировка, как показано здесь
C:> dir android-dev \ emu_sdcard
Объем в диске C - Предварительная нагрузка
Серийный номер тома A4F3-6C29
Каталог C: \ android-dev \ emu_sdcard
12/24/2010 03:41.
24.12.2010 03:41 ..
24.12.2010 03:17 8 388 608 emu_logFile
24.12.2010 03:41 emu_logFile.lock
1 файл (ов) 8,388,608 байт
3 Dir (s) 50 347 704 320 байт бесплатно
Я посмотрел на эти и другие вопросы SO
Ошибка отправки SDCard эмулятора Android: файловая система только для чтения (2)
Не удается просмотреть папку SDCard в FileExplorer Android Eclipse
Я добавил следующее в AndroidManifest.xml
** Использует разрешение Android: имя = "android.permission.WRITE_EXTERNAL_STORAGE" **
Пожалуйста, дайте мне знать ваши мысли - что мне здесь не хватает? Почему canWrite возвращает false? Что я должен сделать, чтобы добавить разрешения для SDCard?