Android-логинг SDCard - PullRequest
       19

Android-логинг SDCard

0 голосов
/ 24 декабря 2010


С 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?

Ответы [ 2 ]

1 голос
/ 28 декабря 2010

Вот сообщение в окне консоли, которое я все время пропускал -
[2010-12-28 12:14:08 - Emulator] ### WARNING: SD Card files must be at least 9MB, ignoring 'C:\android-dev\emu_sdcard\emu_logFile'

И другая мораль этой истории - контролировать окно консоли тоже, а не только окно LogCat

1 голос
/ 28 декабря 2010

хорошо - я заставил его работать (т.е. canWrite возвращает true).

Вот что я сделал

  • создал новый файл изображения SD-карты, используя следующую команду

C:\android-scripts>mksdcard -l Emu1GSD 1024M C:\android-dev\emu_sdcard\emu1gsd.img
С предыдущей SDизображение карты без метки, размер был 8 МБ, а расширение не было .img.Я не удосужился выяснить, какая из них является вероятной причиной.Также предыдущий файл изображения мог быть поврежден!

  • Вторым шагом было воссоздание нового AVD с новым файлом образа карты SD.Вот как теперь выглядит AVD
    alt text

Проблема getTotalspace, о которой говорилось в предыдущем комментарии, все еще существует - я создам для этого новый вопрос.

...