Откройте изображение во внутреннем хранилище, используя контент-провайдер - PullRequest
0 голосов
/ 04 июля 2018

Допустим, я упаковываю изображение с моим приложением и хочу открыть его с помощью программы просмотра изображений по умолчанию / любой программы просмотра изображений, выбранной пользователем по умолчанию. Как бы я это сделал?

Это сообщение уже есть: Откройте изображение с помощью URI в программе просмотра изображений галереи Android по умолчанию , но многие ответы устарели, поскольку из-за появления android N должен использоваться поставщик контента.

Единственный ответ, который я могу найти, это:

File file = ...;
final Intent intent = new Intent(Intent.ACTION_VIEW)//
                                    .setDataAndType(VERSION.SDK_INT >= VERSION_CODES.N ?
                                                    android.support.v4.content.FileProvider.getUriForFile(this,getPackageName() + ".provider", file) : Uri.fromFile(file),
                            "image/*").addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

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

1 Ответ

0 голосов
/ 04 июля 2018

Вы не сможете открыть изображение, упакованное с приложением (в режиме рисования или какими-либо другими ресурсами) через внешнее приложение. Сначала вы должны скопировать его (как минимум) во внутреннее хранилище файлов . После этого вы можете реализовать FileProvider для предоставления доступа к этому файлу.

Дайте мне знать, если вам нужно больше подробностей об этом. Надеюсь, это помогло.

...