我正在将Android应用程序更新为作用域存储,而现在面临的问题是,在我的应用程序上,用户可以选择一组要自动处理的图像(他们可以选择覆盖原始图像)。
[问题是,当我尝试从其Uri覆盖原始图像时,Android抛出RecoverableSecurityException
,它向用户显示一个对话框,要求用户同意修改该照片。
我想知道的是,是否可以改为显示一个权限对话框,但是一次显示全部10张图像,而不必为每个图像显示一个对话框。
我尝试使用applyBatch
的ContentResolver
方法(下面的代码模拟了问题),但是同意对话框仅显示第一个更新的图像。
val values = ContentValues().apply {
put(MediaStore.Images.Media.DATE_MODIFIED, System.currentTimeMillis())
}
val ops = arrayListOf<ContentProviderOperation>()
for (image in galleryImages) {
ops.add(ContentProviderOperation.newUpdate(image.uri)
.withValues(values)
.build())
}
context.contentResolver.applyBatch(MediaStore.AUTHORITY, ops)
对此有何想法?谢谢。
不幸的是,在Android Q中是不可能的。但是,该团队在Android Summit 2019中表示,可以在下一个Android版本中进行批量编辑和删除,因此应该在将来的版本“ R”中进行。