2012-10-27 3 views
2

У меня есть Xperia Neo V, у которого нет внутреннего хранилища - только SD-карта в качестве внешнего хранилища, в то время как Galaxy S3 имеет как внутреннее, так и внешнее хранилище.Доступ к файлам во внутреннем и внешнем хранилище

При использовании этой функции Environment.getExternalStorageDirectory(); я могу получить доступ к файлам только на внутренней памяти (S3), но не существует никаких проблем с Xperia Neo V.

Как я могу получить доступ к файлам на внутренней и внешней памяти?

+1

напишите ваш код для лучшего понимания. –

+0

Используя вышеприведенную функцию, я могу получить доступ только к внутреннему хранилищу, не имеющему доступа к файлу на внешней Sdcard на S3. – user1778783

+0

Пройдите эту ссылку http://stackoverflow.com/questions/11716448/how-to-access-external-micro-sd-card-of-the-phone –

ответ

1

У меня есть Xperia Neo V, который не имеет никакого внутреннего хранения

Все Android устройство имеет внутреннюю память, в том числе Xperia Neo V. внутренней памяти, где данные ОС и приложений хранятся - - без него ваш телефон не будет работать.

Предположительно, у вас возникают проблемы со словами «внешний» и «съемный». В терминах Android термин «внешний» означает «может быть доступен пользователю самостоятельно, подключив USB-кабель между устройством и хост-компьютером». Все устройства Android имеют внешнее хранилище; независимо от того, является ли это хранилище съемным или нет.

Итак, в случае Xperia Neo V у вас есть как внутреннее, так и внешнее хранилище, а внешнее хранилище представлено съемной SD-картой.

При использовании этой функции Environment.getExternalStorageDirectory(); Я могу получить доступ к файлам только на внутренней памяти (S3), но нет никаких проблем с Xperia Neo V.

Это происходит потому, что getExternalStorageDirectory() возвращает внешний каталог хранения для этого устройства.

Как я могу получить доступ к файлам как на внутреннем, так и на внешнем хранилище?

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

Для устройств с несколькими формами внешнего хранилища, таких как ваш Galaxy S3, Android SDK поддерживает только тот, который предоставляется одним из них, getExternalStorageDirectory().

+0

Интересно. Итак, если вы удалите SD-карту и сделаете фотографии, фотографии будут сохранены на несъемном внешнем хранилище? Теперь, если вы вернете SD-карту, потеряете ли вы доступ к этим фотографиям до снятия карты? Или как это работает? – trusktr

+1

@trusktr: «Итак, если вы удалите SD-карту и сделаете фотографии, фотографии будут сохранены на несъемной внешней памяти?» - вам придется спросить авторов конкретного приложения камеры. «Теперь, если вы вернете SDCard, потеряете ли вы доступ к этим фотографиям до тех пор, пока карта не будет удалена? Или как это работает?» - опять же, вы должны спросить авторов конкретного приложения камеры. Есть тысячи приложений для камеры, поэтому вам потребуется некоторое время. – CommonsWare

+0

Хорошо, давайте рассмотрим приложение камеры, которое использует 'Environment.getExternalStorageDirectory()', чтобы установить его рабочий путь.Приложение создает папку DCIM в каталоге, возвращаемом этим методом, и сохраняет все фотографии в DCIM. Если sdcard присутствует, папка DCIM будет находиться на SD-карте. Если SD-карта будет удалена, новая DCIM-папка будет создана где-то во внутреннем «внешнем хранилище». Когда SD-карта будет вставлена ​​обратно в телефон, в устройстве теперь будет две папки DCIM. Будет ли распознана одна папка, а другая игнорируется? – trusktr

Смежные вопросы