MediaStore.Images.Media.insertImage已弃用

问题描述 投票:1回答:1

我曾经使用MediaStore.Images.Media.insertImage保存图像,但现在不推荐使用insertImage方法。 docs说:

此方法在API级别29中已弃用。插入图像应可以使用MediaColumns#IS_PENDING执行控制生命周期。

我不太了解,因为MediaColumns.IS_PENDING只是一个标志,我应该如何使用它?

我应该使用ContentValues吗?

android mediastore
1个回答
0
投票

已解决

@ CommonsWare所建议的代码没有问题,除了以下事实:如果使用targetSdkVersion 29进行编程,则必须添加条件:

val contentValues = ContentValues().apply {
            put(MediaStore.MediaColumns.DISPLAY_NAME, System.currentTimeMillis().toString())
            put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg")
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { //this one
                put(MediaStore.MediaColumns.RELATIVE_PATH, relativeLocation)
                put(MediaStore.MediaColumns.IS_PENDING, 1)
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.