Android, в какое устройство нужно записать данные, чтобы можно было их прочитать? - PullRequest
0 голосов
/ 18 мая 2011

Я пишу приложение для Android, которое использует Wi-Fi, поэтому я не могу легко отладить в эмуляторе (без поддержки Wi-Fi ... ;-), поэтому я использую свое реальное устройство (Samsung Galaxy S).Я хотел бы иметь возможность читать файлы данных, которые пишет мое приложение, отлаживать и тестировать.Если я использую, скажем:

 new File(getFilesDir(), "myfile.xml");

Я получаю свой файл данных, записанный в / data / data / MYPACKAGE / files /, но этот каталог недоступен через adb (или через DDMS Eclipse).Мое устройство не имеет права root (и я бы предпочел избегать его, если это возможно ... ;-) Куда мне записать файл данных?

Ответы [ 4 ]

2 голосов
/ 18 мая 2011

Возможно, имеет смысл поместить файлы на SD-карту во время разработки, формально вы должны вызвать getExternalStorageDirectory (), чтобы найти ее, и, конечно, потребуется разрешение на внешнее хранилище.

Кроме того, вы можете предоставить публичный доступ к вашим личным файлам в отладочной версии; просто не забудьте отключить это перед отправкой (как, по сообщениям, поступила некая интернет-телефония). Тем не менее, это не сделает частные файлы доступными для просмотра, как это делают промежуточные каталоги, вы сможете только извлекать их через их точный путь.

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

0 голосов
/ 18 мая 2011

Ответ зависит от вашего уровня API.Просмотрите раздел документации по внешнему хранилищу, чтобы получить ответ на этот вопрос.http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

Для более общего ответа каталог sdcard, в котором вы должны хранить файлы, является каталогом, возвращаемым из getExternalStorageDirectory () (который должен быть корнем вашей sdcard или, возможно, внутреннего расширенного хранилища, как с моимCaptivate), с подкаталогами /Android/data/your.package.name/files

О да, и, как уже упоминалось, постер, не забывайте разрешение WRITE_EXTERNAL_STORAGE в вашем манифесте.

0 голосов
/ 18 мая 2011

Вы можете написать на свою SD-карту. Вы должны использовать getExternalStorageDirectory () , чтобы получить путь к вашей SD-карте. Для этого вам нужно будет включить <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> в свой манифест.

0 голосов
/ 18 мая 2011

Просто используйте внешнее хранилище !

...