2017-02-01 12 views
1

Я пишу приложение, которое позволяет пользователям импортировать свои собственные данные (через .zip, .png и т. Д.) Из внешнего местоположения, такого как их папка с загрузкой.Как я могу прочитать файл во внутреннем хранилище без объявления разрешения?

Мое приложение правильно получает путь к файлу из URI, однако я не хочу требовать разрешения WRITE_EXTERNAL_STORAGE в своем приложении, которое мне нужно, чтобы прочитать файл, который мне предоставляет. Я чувствую, что Android должен позволить моему приложению читать разрешение на этот файл, так как пользователь его выбрал.

Есть ли способ заставить Android скопировать этот файл во временное место, где я могу его прочитать, так что мне не нужно спрашивать у пользователя этого разрешения?

+0

Я думаю, что вы имели в виду вам нужно разрешение READ_EXTERNAL_STORAGE для вашего приложения для чтения файлов. Во-вторых, что не так, спрашивая у пользователя время установки для разрешения чтения с внешнего хранилища? – Alex

+0

WRITE_EXTERNAL_STORAGE также будет также предоставлять разрешение READ. У меня есть функциональность, которая является необязательной, для которой требуется разрешение WRITE, и я полагаю, что меньшее разрешение подскажет лучше. Я пытаюсь поддерживать функциональность приложения как можно меньше разрешений, так как некоторые люди могут предпочесть, что у него нет такого разрешения. – CodyC

+0

«Я чувствую, что Android должен позволить моему приложению читать разрешение на этот файл, так как пользователь его выбрал» - как именно пользователь выбирает его? – CommonsWare

ответ

0

Если вы не хотите разрешения, то есть способ для Android4.4 и выше. Пусть пользователь импортирует данные в programdirectory, смотри также:

Начиная с Android 4.4, владелец, группа и режимы файлов на внешних устройств хранения данных в настоящее время синтезируют на основе каталога структуры. Это позволяет приложениям управлять своими каталогам с их конкретным каталогом на внешнем хранилище, не требуя, чтобы они содержали широкое разрешение WRITE_EXTERNAL_STORAGE . Например, приложение с пакетом имя com.example.foo теперь может свободно получить доступ к Android/data/com.example.foo/на внешних устройствах хранения без разрешения . Эти синтезированные разрешения выполняются с помощью , обертывая необработанные устройства хранения данных в демоном FUSE.

Взятые с этой страницы ->https://source.android.com/devices/storage/index.html

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

  • Нет связанных вопросов^_^