我曾经使用MediaStore.Images.Media.insertImage
保存图像,但现在不推荐使用insertImage
方法。 docs说:
此方法在API级别29中已弃用。插入图像应可以使用MediaColumns#IS_PENDING执行控制生命周期。
我不太了解,因为MediaColumns.IS_PENDING
只是一个标志,我应该如何使用它?
我应该使用ContentValues
吗?
已解决
@ 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)
}
}