我遇到两个错误,这是DecodePath的问题。我想保存一个文件,但是由于这个错误而不能。
我的错误:
Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->BitmapDrawable->Drawable}
Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
这是我尝试获取文件路径的地方:
private suspend fun getWallpaperFile(photo: Photo): File = withContext(Dispatchers.IO) {
val file = Glide.with(context)
.downloadOnly()
.load(photo.src?.portrait)
.submit()
.get()
val renamedFile = File(
file.parent,
DEFAULT_FILE_NAME
)
file.renameTo(renamedFile)
renamedFile
}
在这一部分中,我将我的WallpaperFile保存在Gallery中:(我无法保存文件)
private suspend fun saveWallpaperInGallery(photo: Photo): String = withContext(Dispatchers.IO) {
val context = context
val wallpaperFile = getWallpaperFile(photo)
val wallpaperUri = MediaStore.Images.Media.insertImage(
context.contentResolver,
wallpaperFile.path, wallpaperFile.name, "By ${photo.photographer}"
)
val intent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE).apply {
data = Uri.parse(wallpaperUri)
}
context.sendBroadcast(intent)
wallpaperUri
}
我希望能够将墙纸文件保存到图库。我认为问题是我没有解码文件。我不是100%确信这是主要问题。
希望大家可以帮助我提出一些想法,甚至为我提供解决方案。