Сохранение на устройство без SD-карты - PullRequest
1 голос
/ 26 августа 2011

Мой друг и я пытаемся создать приложение, которое сохраняет файлы на устройстве. Мы использовали этот код для записи на внешнюю SD-карту, и он прекрасно работает на его Droid X и Samsung Galaxy Tab.

Получить путь к SD-карте:

private static final File ROOT = Environment.getExternalStorageDirectory();

Создать путь к папке и файлам:

FileWriter fw = new FileWriter(ROOT + "/test/" + "time_frames.txt");

мы используем фабрику документов для создания документов

чтобы вы могли видеть, что мы создаем путь, а затем пытаемся сохранить на тот путь, который только что был создан

File file = new File(ROOT + "/test/" + "time_frames.txt");

Когда я запускаю его на Nexus S (на котором нет SD-карты) возникают проблемы с точно таким же кодом.

private static final File ROOTtest = Environment.getExternalStorageDirectory();

это возвращает / данные

private static final File ROOT = Environment.getRootDirectory();

возвращает / mnt / sdcard

private static final File intData = Environment.getDataDirectory();

это возвращает / system

Мой вопрос: какой из них будет работать для устройств с SD-картами и без SD-карт? Я много пробовал, но все эти вещи действительно смутили меня. Заранее спасибо

1 Ответ

6 голосов
/ 26 августа 2011

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

...