Получение изображений из галереи - возможность загрузки без разрешения - PullRequest
1 голос
/ 29 января 2020

Использование приведенного ниже кода для извлечения изображений из галереи

val intent = Intent()
intent.action = Intent.ACTION_PICK
intent.type = "image/*"
if (multiImageAllowed) intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
context.startActivityForResult(intent, PICK_IMAGE_GALLERY)

Когда я использую это намерение, оно показывает мне выбор с несколькими приложениями, я выбираю одно из приложений и получаю изображение, и показываю его в моем приложение, (я получаю изображение в onActivityResult), эти приложения имеют свои собственные проверки разрешений во время выполнения. Мне нужно добавить проверку разрешений галереи в моем приложении тоже? если это требуется, то почему android не останавливает меня и не дает исключения. Является ли это хорошим соглашением запрашивать разрешение у пользователя, когда он / она намеренно открывает приложение для добавления изображений?

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

1 Ответ

1 голос
/ 29 января 2020

с использованием приведенного ниже кода для извлечения изображений из галереи

Если вы хотите sh, чтобы пользователь выбирал контент на основе типа MIME, используйте ACTION_GET_CONTENT или ACTION_OPEN_DOCUMENT. ACTION_PICK означает, что пользователь выбирает контент на основе определенной коллекции, обозначенной Uri в Intent. Вот почему в документации ACTION_PICK упоминается, что ввод является Uri и ничего не упоминается о типе MIME.

Нужно ли добавлять проверку разрешений галереи в мое приложение тоже?

Я предполагаю, что вы имеете в виду READ_EXTERNAL_STORAGE. Теоретически, Uri, возвращаемый ACTION_PICK, ACTION_GET_CONTENT или ACTION_OPEN_DOCUMENT, должен использоваться без дополнительных разрешений, по крайней мере, в течение короткого времени .

Однако не все играют по правилам, поэтому ИМХО безопаснее всего, если вы держите READ_EXTERNAL_STORAGE. Если вас беспокоит вопрос о том, хотите ли вы получить разрешение у своих пользователей, попробуйте отложить его - попробуйте использовать Uri, а если вы получите SecurityException, то запросите разрешение во время выполнения. Затем попробуйте снова использовать Uri, если пользователь предоставит это разрешение. Лично я хотел бы повысить надежность и сначала запросить READ_EXTERNAL_STORAGE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...