2015-01-26 3 views
0

Я пытаюсь записать файлы из своего приложения во внешнюю SD-карту, однако он не пишет ее, мои тестовые телефоны - дуэты галактики и LG, когда я пытался на телефоне LG работать просто хорошо, однако телефон LG имеет версию для Android 4.1.2. Пока галактика равна 4.4.2, я полагаю, что это имеет какое-то отношение к изменениям SDCard в kitkat 4.4, интересно, может ли кто-нибудь решить это?Запись файлов на внешний SDCard -android

ответ

0

В 4.4 приложение не может записывать данные в любое место на внешней SD-карте. Приложение может записывать данные только в определенные папки на внешней карте (под/extSdCard/Android/data/path). Это новое ограничение, наложенное Google, которое должно позволить пользователям удалять все данные, связанные с приложением после удаления приложения.

Вот detailed explanation.

0

С Android 4.4 (KitKat) Google заблокировал приложения от записи на SD-карту, за исключением особого изолированного места. Приложения имеют прямой доступ к записи ТОЛЬКО в свои каталоги, специфичные для пакета, полученные через Context.getExternalFilesDirs(), Context.getExternalCacheDirs() и т. Д. «Прямой» доступ определяется как использование традиционных API доступа к файлам, таких как POSIX open(). Прямой доступ к остальным дополнительным внешним устройствам хранения остается доступным только для чтения для приложений.

Однако приложения могут создавать/записывать файлы за пределами своих каталогов конкретных пакетов на вторичных внешних устройствах хранения, используя новый намерение CREATE_DOCUMENT, которое включает пользователя в процесс создания файла.

Примечательно, что устройства Nexus компании Google не включают поддержку микро SD-карт; однако многие другие устройства на базе Android имеют функциональность микро SD-карты. Предыдущая версия Android оставила устройства уязвимыми с точки зрения безопасности, но теперь Google рассмотрела эти проблемы безопасности, ограничив, что сторонние приложения могут делать с картой Micro SD.

+0

'новый объект CREATE_DOCUMENT, который включает пользователя в процесс создания файла .'. Ницца. Я слышал эти слова раньше. Что значит «вовлекает»? Вы когда-нибудь пробовали это самостоятельно? Приведите пример рабочего кода. – greenapps