Я разрабатываю приложение для Android, и мне нужно получить изображения, которые были удалены и перемещены в корзину. Я попытался использовать MediaStore.Images.Media.IS_TRASHED в качестве проекции, но мне не удалось получить удаленные изображения.
Вот фрагмент кода, который я использую:
fun queryAllImages() {
val files = arrayListOf()
ctx.contentResolver.query(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL)
} else {
MediaStore.Images.Media.EXTERNAL_CONTENT_URI
}, arrayOf(
imageData,
imageId,
imageDisplayName,
imageSize,
imageWidth,
imageHeight,
imageDateModified,
imageIsTrash
), if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
"$imageIsTrash = 0 OR $imageIsTrash = 1"
} else {
null
}, null, null
).use { cursor ->
val dataColumn = cursor?.getColumnIndexOrThrow(imageData)
val nameColumn = cursor?.getColumnIndexOrThrow(imageDisplayName)
val isTrashColumn = cursor?.getColumnIndexOrThrow(imageIsTrash)
var path: String? = null
var name: String? = null
var isTrash: Boolean? = null
if (cursor != null) {
while (cursor.moveToNext()) {
path = dataColumn?.let { cursor.getString(it) }
name = nameColumn?.let { cursor.getString(it) }
isTrash = isTrashColumn?.let { cursor.getInt(it) } == 1
Log.i(TAG, "queryImages: $path \n $isTrash")
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... in-android