微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Andorid 10 + 11 上制作图库应用程序显示保存到外部存储的图像

如何解决如何在 Andorid 10 + 11 上制作图库应用程序显示保存到外部存储的图像

所以我有以下代码

fun saveMediaToStorage(bitmap: Bitmap,context: Context) {
        val filename = "${System.currentTimeMillis()}.jpg"
        var fos: OutputStream? = null
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            context.contentResolver?.also { resolver ->
                val contentValues = ContentValues().apply {
                    put(MediaStore.MediaColumns.disPLAY_NAME,filename)
                    put(MediaStore.MediaColumns.MIME_TYPE,"image/jpg")
                    put(MediaStore.MediaColumns.RELATIVE_PATH,Environment.DIRECTORY_PICTURES)
                }
                val imageUri: Uri? =
                        resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues)
                fos = imageUri?.let { resolver.openOutputStream(it) }
            }
        } else {
            val imagesDir =
                    Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
            val image = File(imagesDir,filename)
            fos = FileOutputStream(image)
        }
        fos?.use {
            bitmap.compress(Bitmap.CompressFormat.JPEG,100,it)
        }
    }

我在清单文件中有权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

以及属性android:requestLegacyExternalStorage="true"

我在使用 FileExplorer 应用程序时看到保存在正确位置的图像,但 gallary 应用程序无法识别它。

有没有人注意到我做错或遗漏了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。