Я поддерживаю популярную библиотеку выбора изображений 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 и отображаются в средстве выбора изображений, поэтому должен быть какой-то способ доступа к ним, возможно, мой подход здесь неправильный.
Любая помощь от кого-то с большим знанием будет очень оценили.