Ошибка разрешения при попытке получить доступ к изображениям WhatsApp - PullRequest
0 голосов
/ 28 марта 2020

Я поддерживаю популярную библиотеку выбора изображений OSS. Один из пользователей библиотеки сообщил, что он получает странную ошибку при попытке прочитать изображение из папки WhatsApp Images.

Информация

  • Устройство Redmi Note 3 с двойные приложения включены. Есть несколько пользователей WhatsApp.
  • Пользователь установил правильные WRITE_EXTERNAL_STORAGE и READ_EXTERNAL_STORAGE разрешения
  • Android Версия 6.0.1
  • MIUI версия 10.2.1.0

Проблема

Все изображения из папки WhatsApp проиндексированы и видны MediaStore. Когда я получаю URI изображения и пытаюсь открыть его, чтобы прочитать его содержимое следующим образом

InputStream is = context.getContentResolver().openInputStream(uri);

, я получаю следующую ошибку

java.io.FileNotFoundException: Can't access across users /storage/emulated/999/WhatsApp/Media/WhatsApp Images/IMG-20200326-WA0023.jpg

Теперь я не эксперт по Android, Также у меня нет знаний о двойных приложениях, и более того, я не знаю, устанавливает ли сам WhatsApp какие-либо дополнительные разрешения для изображений в своей папке.

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

Мой вопрос заключается в том, правильно ли я, и что я могу сделать, чтобы прочитать изображения? Очевидно, что все они индексируются MediaStore и отображаются в средстве выбора изображений, поэтому должен быть какой-то способ доступа к ним, возможно, мой подход здесь неправильный.

Любая помощь от кого-то с большим знанием будет очень оценили.

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