2016-04-06 11 views
0

Долгое время IOS разработчик, продвинутый Android-программист (но не столь значительным, как я думал, что .. LOL) ..Android Внешняя SD карты доступа

Пытаясь понять Android варианты хранения устройства. На моем устройстве Android у меня есть карта с 14Gig SD.

Когда я пишу код

String strDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)+ File.separator + "MyFolder"; 

он получает помещается в папке «Документы» на внутреннем устройстве (если смотреть с помощью диспетчера файлов).

Путь, кажется,

хранения/эмулировать/0

и мои сд карт (acording в диспетчере файлов) является

хранения/extSdCard

Почему окружающей среды. getExternalStoragePublicDirectory дать мне путь к моей внутренней карточке?

Что мне не хватает, что приводит меня к пути хранения файлов на внешнюю карту. Думаю, я понимаю, что часть этого заключается в изменении ОС в доступе к SD-карте в 4.1, но не уверен, чего я не хватает.

Я прочитал Environment.getExternalStorageDirectory does not return the path to the removable storage и до сих пор не ясен. Мое приложение в настоящее время хранит файлы с использованием getExternalStoragePublicDirectory, однако мои пользователи запрашивают у них возможность сохранить его на SDCard вместо этого?

+0

Какую версию андроида вы используете? – Sibidharan

ответ

4

Почему Environment.getExternalStoragePublicDirectory дает мне путь к моей внутренней карточке?

Потому что external storage не removable storage. Ни один из них не является internal storage.

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

На Android 4.4 и выше, либо использовать the Storage Access Framework (чтобы позволить пользователю выбрать место хранения, в том числе съемных носителей, провайдеров Drive/Dropbox/другие облака и т.д.), или use getExternalFilesDirs() on Context. Последний метод возвращает File[] —, если в массиве есть 2+ элемента, все, кроме первых, - это места на съемном носителе, из которых вы можете читать и писать. Вы не можете писать в произвольные места на съемном носителе на устройствах, поставляемых с Android 4.4+.