Android avdr: работа с avd и создание каталога на SD-карте

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

(2) я хочу создать новый каталог в SD-карте, но file.mkdir() возвращает false, и необходимо ли, чтобы файл манифеста также был написан для проверки вывода на avd


person vid09    schedule 28.02.2011    source источник


Ответы (1)


Вы можете получить доступ к каталогу SD-карты, используя adb shell. Просто перейдите в каталог /sdcard.

Чтобы записать на SD-карту, убедитесь, что в вашем AndroidManifest объявлено правильное разрешение. В таком случае,

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

должно быть достаточно.

person Rodrigo Chiossi    schedule 28.02.2011
comment
Я написал код на ide и выполнил его, для этого также должен быть файл манифеста? - person vid09; 01.03.2011
comment
Если вы используете IDE, например Eclipse, файл AndroidManifest.xml будет сгенерирован автоматически, но это не означает, что вам не нужно его редактировать. Он находится в корневом каталоге проекта. Попробуйте найти его и проверьте, заявлено ли вышеописанное разрешение. - person Rodrigo Chiossi; 01.03.2011
comment
я сделал это, но без изменений, я написал следующий код String state=Environment.getExternalStorageState(); if(Environment.MEDIA_MOUNTED.equals(state)) { File folder=new File(Environment.getExternalStorageDirectory()+/vid); if(folder.canWrite()){ boolean случиться =folder.mkdirs(); затем есть код, который отображает да, если произошло = истина и нет, если произошло = ложь, и он отображает ложь - person vid09; 01.03.2011
comment
Существует ли каталог /vid? Какие разрешения у этой папки? - person Rodrigo Chiossi; 01.03.2011
comment
Я сделал пример кода здесь, и я могу воспроизвести вашу проблему. Я пытаюсь понять, в чем проблема, но пока безуспешно... =/ - person Rodrigo Chiossi; 02.03.2011
comment
О, я нашел проблему! Дело в том, что folder.canWrite() вернет true только в том случае, если папка уже существует. Если вы запустите folder.mkdirs(), а затем проверите folder.canWrite(), он вернет true. Правильная проверка состоит в том, чтобы проверить, доступен ли Environment.getExternalStorageDirectory() для записи, а затем вызвать mkdirs() для folder. - person Rodrigo Chiossi; 02.03.2011
comment
я думаю, что совершил глупую ошибку, когда я запустил код один раз, он показал «да», а когда я запустил его, он показал «нет», mkdirs, я полагаю, вернул ложь во второй раз, потому что папка уже была создана один раз. это так? - person vid09; 02.03.2011
comment
Вот так! Если папка уже существует, mkdirs() вернет false. - person Rodrigo Chiossi; 02.03.2011
comment
но я не вижу новую папку в avd - person vid09; 02.03.2011
comment
Проверьте мой пример кода. Вы можете скачать его отсюда mediafire.com/?j5jq9ozu0n4333z. С помощью этого кода я могу успешно создать папку vid/ внутри SD-карты. - person Rodrigo Chiossi; 02.03.2011
comment
Я ищу папку в avd, она там отображается? или есть какой-то другой способ, которым я могу это увидеть, большое спасибо за помощь - person vid09; 03.03.2011
comment
Если вы используете проводник в DDMS, вы увидите, что папка есть (для меня это /mnt/sdcard/vid, но это зависит от Android). Если вы протестируете его на реальном телефоне вместо avd, вы можете просто смонтировать SD-карту и перейти к этой папке. - person Rodrigo Chiossi; 03.03.2011
comment
Без проблем! Только не забудьте принять ответ, если он действительно был вам полезен! знак равно - person Rodrigo Chiossi; 03.03.2011