Где изображения идут после того, как они разбивают их, используя CreaterTrashRequest?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Где изображения идут после того, как они разбивают их, используя CreaterTrashRequest?

Сообщение Anonymous »

Я создал функциональность Delete в моем приложении, приложение проверяет, больше ли телефон/ равен уровню API 30 или нет. Если это меньше, то изображения непосредственно удаляются, но если это 30+, то создается CreaterTrashRequest, чтобы помещать изображения в мусорную корзину. Код успешно работает, когда я изначаю запрос, меня попросили подтвердить изображения для мусора, а затем они удалены и предположительно переехали в бин. Когда я займлю приложение галереи по умолчанию телефона или приложение для моего файла, я вижу, что изображения больше нет. Однако, когда я проверяю их корзину, я не могу найти их. Так, куда снялось изображение? Я знаю, что это не удалено, потому что пространство для хранения все же. deleteResultLauncher = registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result ->
val idsSuccessfullyProcessed = pendingDeleteIds!!
pendingDeleteIds = null // Clear the temporary list immediately
if (result.resultCode == Activity.RESULT_OK) {
Log.d("SearchFragment", "Delete/Trash permission granted via IntentSender.")
val uri = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL)
val cursor = context?.contentResolver?.query(
uri,
arrayOf(
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DISPLAY_NAME,
MediaStore.MediaColumns.IS_TRASHED
),
"${MediaStore.MediaColumns.IS_TRASHED} = 1",
null,
null
)

cursor?.use {
if (!cursor.moveToFirst()) {
Log.d("TrashDebug", "No trashed images visible to this app.")
Toast.makeText(context, "No trashed images visible", Toast.LENGTH_LONG)
.show()
}
else{
do {
val name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DISPLAY_NAME))
Log.d("TrashDebug", "Trashed image: $name")
} while (cursor.moveToNext())
}
}
Toast.makeText(context, "File(s) successfully moved to trash.", Toast.LENGTH_SHORT).show()
updateAdapterAfterModification(idsSuccessfullyProcessed, emptyList())
} else {
Log.w("SearchFragment", "Delete/Trash permission denied via IntentSender.")
Toast.makeText(context, "Operation cancelled or permission denied.", Toast.LENGTH_SHORT).show()
}
}
< /code>
Но я продолжаю получать «нет доступных изображений», я проверяю это volume_external, Volume_internal, а также gule_external_primary. < /p>
Это мой код удаления: < /p>
val urisOnly = urisAndIdsToDelete.map { it.first }
pendingDeleteIds = urisAndIdsToDelete.map { it.second } // Store IDs for potential callback

when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
try {
val pendingIntent = MediaStore.createTrashRequest(contentResolver, urisOnly, true)
val intentSenderRequest = IntentSenderRequest.Builder(pendingIntent).build()
// Store IDs before launching request
// pendingDeleteIds = selectedInternalIds
Log.d("SearchFragment", "Launching createTrashRequest (API 30+).")
deleteResultLauncher.launch(intentSenderRequest)
} catch (e: Exception) {
Log.e("SearchFragment", "Error creating or launching trash request", e)
Toast.makeText(context, "Failed to initiate trashing operation.", Toast.LENGTH_SHORT).show()
pendingDeleteIds = null
handleSuccessfulDeletion(emptyList(), selectedInternalIds)
}
}
// API 29 and below
else -> { // Covers Q and below
// pendingDeleteIds = selectedInternalIds
lifecycleScope.launch(Dispatchers.IO) {
handleDeletionLoopApi29(urisAndIdsToDelete)
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ashrequest
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»