Сохранение на устройство без SD-карты

Мой друг и я пытаемся создать приложение, которое сохраняет файлы на устройство. Мы использовали этот код для записи на внешнюю 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();

это возвращает /система

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


person zach    schedule 26.08.2011    source источник
comment
БОЛЬШЕ я думаю, что причина, по которой это не работает, заключается в том, что по какой-то причине мы неправильно вызываем хранилище на Nexus S. Вот почему я экспериментировал с разными локациями.   -  person zach    schedule 26.08.2011


Ответы (1)


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

person Nikolay Elenkov    schedule 26.08.2011
comment
У меня та же проблема, и этот ответ вообще не ответил на вопрос - person AbdelHady; 18.09.2014
comment
И как разработчик должен заботиться о его состоянии? - person zimmerrol; 17.10.2016