Открытие изображения с намерением через абсолютный путь к файлу - PullRequest
0 голосов
/ 26 апреля 2020

Я новичок в android разработке.

Я пытаюсь открыть приложение галереи по умолчанию для просмотра изображения, подобного этому:

 Uri u = Uri.parse((String) gridView.getAdapter().getItem(position);
 Intent i = new Intent();
 i.setDataAndType(u, "image/*");
 i.setAction(Intent.ACTION_VIEW);
 i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
 startActivity(i);

Я указываю пути к файлам для моего изображения, подобные этому:

/storage/emulated/0/WhatsApp/Media/WhatsApp Images/IMG-20191023-WA0045.jpg

/storage/emulated/0/Pictures/9GAG/1565987862000.jpg

Мое приложение и Google Photos могут отображать изображение, указанное по этому пути, в галерее Samsung (проверено на Android Oreo) или в приложении Xiaomi Gallery (проверено на Android X) не могу найти изображение; также, если я пытаюсь добавить «content: //» или «file: //» в начале. Я подозреваю, что приложения хотят иметь URI контента или какую-то символьную ссылку c без части "/ storage / emulated / 0 /" вместо URI файла. Я искал методы, чтобы получить URI содержимого из пути к файлу, но не нашел примеров для Android X.

Так что же является правильным URI для передачи через Intent и как мне это сделать?

Или, может быть, кто-то знает лучший способ просто открыть приложение галереи для определенного c изображения, которое я предоставляю по абсолютному пути к файлу (как для внешнего хранилища, так и для SD-карты)?

Заранее благодарю и приветствую!

1 Ответ

0 голосов
/ 26 апреля 2020

скопировано с этого вопроса здесь , это может работать для вас startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("content://media/external/images/media/16"))); /** replace with your own uri */

...