Intereting Posts
Gradle выдает ошибку «Не удалось создать плагин типа« AppPlugin »» StaggeredGridLayoutManager и движущиеся объекты Не удается полностью избавиться от цвета подсветки клавиш в приложении Phonegap 3.0 на Android 4.1.2 SetImeOptions: почему кнопка «Готово» не отображается на мягкой клавиатуре? Facebook SDK для дублированной библиотеки поддержки Android на зависимостях Получение изображения из галереи из Picasa // Google + синхронизированные папки не работают Как я могу печатать / записывать все содержимое тела MultiPartEntity, которое используется HTTPRequest? Как проверить, доступен ли ресурс, указанный Ури? Складной элемент списка в навигации Ящик Android: NavigationDrawer / несколько действий / одно и то же меню Как приложения Media Player Android, такие как MXPlayer и MoboPlayer, воспроизводят неподдерживаемые форматы файлов, такие как MKV? Ошибка при вставке в исходное состояние при отладке приложений Android Любой способ заставить браузер Android по умолчанию распознавать имена файлов, отличных от ASCII, в загрузках «Content-Disposition: attachment»? Как создать пользовательский интерфейс Google + в виде списка? Повторно подключитесь к процессу отладки на Android с помощью Eclipse с ADT

Должен ли я объявлять как WRITE_EXTERNAL_STORAGE, так и READ_EXTERNAL_STORAGE?

Достаточно ли объявлять <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> или мне также нужно объявить <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ? Javadocs не упоминает эту важную информацию.

Solutions Collecting From Web of "Должен ли я объявлять как WRITE_EXTERNAL_STORAGE, так и READ_EXTERNAL_STORAGE?"

READ_EXTERNAL_STORAGE существует только с Jelly Bean (уровень 16). Согласно документам , все приложения от Jelly Bean имеют это разрешение, даже не объявляя об этом:

Обеспечивает защищенный доступ для чтения к внешнему хранилищу. В Android 4.1 по умолчанию все приложения по-прежнему имеют доступ на чтение. Это будет изменено в будущей версии, чтобы требовать, чтобы приложения явно запрашивали доступ на чтение с использованием этого разрешения. Если ваше приложение уже запрашивает доступ на запись, оно автоматически получит доступ для чтения. Существует новая опция разработчика, чтобы включить ограничение доступа для чтения, чтобы разработчики тестировали свои приложения против того, как Android будет вести себя в будущем.

Таким образом, вы должны объявить об этом для будущей совместимости, но это может быть не источником вашей проблемы, если вы не используете телефон Jelly Bean и не устанавливаете опцию разработчика «Защитить USB-накопитель».

Лучше быть явным и объявлять обе разрешения, но объявляя только android.permission.WRITE_EXTERNAL_STORAGE , автоматически добавляет android.permission.READ_EXTERNAL_STORAGE к вашему APK во время сборки.

Вы можете использовать команду aapt dump badging в APK, чтобы увидеть, что Android считает использование разрешения на запись подразумевающим, что вы также хотите получить разрешение на чтение.

Вот несколько результатов от apapt для APK, где я объявил только WRITE_EXTERNAL_STORAGE в своем манифесте:

 uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE' uses-permission:'android.permission.READ_EXTERNAL_STORAGE' uses-implied-permission:'android.permission.READ_EXTERNAL_STORAGE', 'requested WRITE_EXTERNAL_STORAGE'