Я работаю над приложением, в котором я сохраняю изображение в папке с изображениями во внутреннем хранилище, и после сохранения изображения я показываю кнопку для просмотра изображения в галерее с помощью провайдера файлов, но проблема возникает, когда я нажимаю на кнопка открытия изображения показывает серый цвет с восклицательным знаком. вот мой код:
MainActivity.kt
fun openDownloadImage(){
var fileName = MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString() +"/${Environment.DIRECTORY_PICTURES}/MY_FOLDER_NAME/" +File(newUri).name
var newFilePath = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) , fileName)
var uri: Uri = GenericFileProvider.getUriForFile(this, "com.mypackage.name.provider", newFilePath)
val resInfoList: List<ResolveInfo> = this.getPackageManager()
.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
for (resolveInfo in resInfoList) {
val packageName: String = resolveInfo.activityInfo.packageName
this.grantUriPermission(
packageName,
uri,
Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION
)
}
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri, "image/*")
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION;
val resolvedInfoActivities: List<ResolveInfo> = packageManager.queryIntentActivities(
intent,
PackageManager.MATCH_DEFAULT_ONLY
)
for (ri in resolvedInfoActivities) {
this.grantUriPermission(
ri.activityInfo.packageName,
uri,
Intent.FLAG_GRANT_READ_URI_PERMISSION
)
}
startActivity(intent)
}
Манифест. xml
тег провайдера b / w тег приложения
<provider
android:name=".GenericFileProvider"
android:authorities="com.mypackage.name.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
provider_paths. xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="internal storage" path="." />
</paths>
Изображение, которое отображается в галерее после нажатия кнопки
![image showing in gallery after click on button](https://i.stack.imgur.com/uUTJt.jpg)
И ошибка галереи в logcat
2020-03-23 17:42:33.315 32228-32270/? E/Gallery: [2897/QuickViewNavigatorCo] loadThumbnailAsSync : null bitmap MediaItem{i,-1,-1,0,UriItem (0,0,0,0:0,0,image/jpeg:0,0:false:null:-909788947) ,GfoY2/imIVudOKYhWXimIVu4piFdOKXjzov4piFL2lu4pePLuKYhWHimIVr4piFc+KYhWjil49h4pePeeKYhXJh4piFbuKYhWEu4piFbWXil49t4pePZXMu4pePcOKXj3LimIVv4pePdmlk4pePZXIv4pePaeKYhW504piFZeKXj3Lil49u4piFYeKXj2wl4pePMuKXjzBzdG9y4piFYeKYhWfil49l4pePL1BpY+KYhXR14pePcuKYhWXil49z4pePL01l4pePbWVzKELimIVl4piFc+KXj3Til49fTeKYhWXimIVt4pePZXMpL07il49h4piFQ+KXj3fil4834piFOGxj4pePSOKYhUbil4924piFTOKXj3F64pePUeKYhVDil49L4piFU+KXj0TimIVt4pePLuKYhWril49wZw==7qOSC8R}
2020-03-23 17:42:33.591 32228-32262/? E/Gallery: [2930/ BeamManager] BeamManager : setBeamUris > can't load nfcadapter
2020-03-23 17:42:33.724 32228-32228/? E/Gallery: [2946/ImageViewerPresenter] preloadThumbnail item is broken
2020-03-23 17:42:33.727 32228-32228/? E/Gallery: [2952/ ImageViewerFragment] display rect is null or tag view is null
2020-03-23 17:42:33.769 32228-32228/? E/Gallery: [2973/ ImageViewerFragment] display rect is null or tag view is null