Сохранение файла на телефон вместо SD-карты - PullRequest
3 голосов
/ 13 января 2011

В моем приложении я сохраняю XML-файл на SD-карту пользователя, выполняя File newxmlfile = new File(Environment.getExternalStorageDirectory() + "/Message.xml");

Но не все пользователи имеют в своем телефоне SD-карты, и поэтому мое приложение может зависнуть.

Как изменить метод создания файла, чтобы сохранить файл в памяти телефона вместо SD-карты?

Кроме того, как я должен изменить загрузку файла? (в настоящее время: new InputSource(new FileInputStream(Environment.getExternalStorageDirectory() + "/Message.xml")))

РЕДАКТИРОВАТЬ: Я не думаю, что вы правильно поняли вопрос. Я знаю страницу Data Storage для Android Docs и прочитал ее. Я просто хочу знать, как мне следует настроить его в соответствии с моим текущим способом сохранения и загрузки файла.

Ответы [ 4 ]

4 голосов
/ 13 января 2011

Получил, изменив

Environment.getExternalStorageDirectory() + "/Message.xml"

в

Environment.getDataDirectory() + "/data/com.companyname.appname/files/Message.xml"
3 голосов
/ 13 января 2011

Сначала вы должны проверить, доступно ли внешнее хранилище (SD-карта) и готово к записи, проверяя getExternalStorageState (). Подробнее здесь: http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

Тогда, если SD-карта недоступна, вы можете записать во внутреннюю память. Подробнее о том, как писать и читать, читайте здесь: http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

2 голосов
/ 13 января 2011

Попробуйте andriods Хранение данных .

Надеюсь, это поможет.

1 голос
/ 13 января 2011

Вы можете использовать openFileOutput, чтобы получить доступ к внутренней памяти.Для получения дополнительной информации вы должны прочитать документацию о внутреннем хранилище .

...