【发布时间】:2020-01-07 05:45:56
【问题描述】:
我正在将 Android 应用更新为范围存储,我现在面临的问题是,在我的应用上,用户可以选择一组要自动处理的图像(他们可以选择覆盖原始图像)图片)。
问题是,当我试图从其 Uri 覆盖原始图像时,Android 会抛出一个RecoverableSecurityException,它会向用户显示一个对话框,请求同意修改该照片。
我想知道的是,是否可以改为显示权限对话框,但可以同时显示整组图像,例如 10 张图像,而不必为每张图像显示一个对话框。
我尝试使用ContentResolver 的applyBatch 方法(下面的代码模拟了问题),但同意对话框仅显示第一个更新的图像。
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 mediastore android-10.0 scoped-storage