Показать изображение в галерее / фотографии - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть изображение в приложении, которое в конечном итоге будет извлечено из базы данных, чтобы упростить приложение (на данный момент) Я просто хочу просмотреть изображение во внешнем приложении, таком как Галерея или Фото.

Исходная попытка

 //opens image with external program
 Intent intent = new Intent(Intent.ACTION_VIEW);

 Uri imgUri = Uri.parse("content://" + item.getImage());
 intent.setDataAndType(uri, "image/*");

 holder.itemView.getContext().startActivity(intent);
 break;

Это событие щелчка принимает участие в адаптере, поэтому вам, возможно, придется игнорировать "holder.itemView.getContext ()".Я обнаружил, что большинство сообщений на Stacked были посвящены извлечению фотографии из хранилища для просмотра в ImageView.Кроме того, я также обнаружил, что большинство ответов до 2017 года и отличаются от современных результатов.

Мой минимальный SDK равен 23.

Я включил:

   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission android:name="com.android.providers.media.MediaProvider"/>

Я тестирую на эмуляторе Android (7.0 - API 24)

После дополнительных исследований я обновил свой код до версии 2019, как показано ниже.Примечание: запросы на разрешение для WRITE_EXTERNAL_STORAGE выполнены успешно

Последнее обновление

ContentValues values = new ContentValues();

values.put(MediaStore.Images.Media.DATA, item.getImage());
Uri contentUri = holder.itemView.getContext().getContentResolver().
          insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(contentUri, "image/*");
intent.putExtra(Intent.EXTRA_STREAM, contentUri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

holder.itemView.getContext().startActivity(intent);

Не уверен, почему это так сложно, я немного перегружен, и яуверен, что исправление достаточно просто.

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