Как скачать изображение в галерее? - PullRequest
0 голосов
/ 17 мая 2019

У меня есть две ошибки, из-за которых возникает проблема с 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 в галерее: (я не могу сохранить файл)

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%, что это главная проблема.

Надеюсь, ребята, вы можете помочь мне с некоторыми идеями или даже найти мне решение.

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