Android: получение растрового изображения из стороннего приложения (например, WhatsApp) через content:// URI.Android

Форум для тех, кто программирует под Android
Anonymous
Android: получение растрового изображения из стороннего приложения (например, WhatsApp) через content:// URI.

Сообщение Anonymous »

Я пытаюсь передать изображение из стороннего приложения (например, WhatsApp) в свое приложение (тестируется на Marshmallow). Когда я «делюсь изображением» из WhatsApp и делюсь им со своим приложением, я получаю URI примерно такого типа:

Код: Выделить всё

content://com.whatsapp.provider.media/item/61025
Но в моем приложении, когда я вызываю getContentResolver().openInputStream(uri) или getContentResolver().openFileDescriptor(uri, "r") с указанным выше URI происходит сбой с исключением:


java.lang.SecurityException: отказ в доступе: открытие поставщика
com.whatsapp .MediaProvider из ProcessRecord{a4b804a
30321:com.myapp/u0a145} (pid=30321, uid=10145), который не экспортируется
из uid 10083


Что я пробовал до сих пор

Я искал это исключение в SO и обнаружил аналогичный заданный вопрос но чтобы импортировать изображения из Google Фото и получить это, необходимо добавить разрешение, например:
Но это меня не устраивает, потому что приложений может быть много, и для каждого из них нужно будет добавить разрешение или что-то в этом роде.

В некоторых других ответах предлагалось немедленно прочитать/скопировать данные от поставщика контента. Но не знаю как. Потому что я получаю исключение в самом openInputStream.

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

Пожалуйста, кто-нибудь может дать совет или рабочее решение по этому поводу?

Подробнее здесь: https://stackoverflow.com/questions/465 ... ia-content

Вернуться в «Android»