Как удалить изображение, хранящееся на SD-карте, через MediaStore#createTrashRequest?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как удалить изображение, хранящееся на SD-карте, через MediaStore#createTrashRequest?

Сообщение Anonymous »

Я пытаюсь реализовать в своем приложении функцию удаления мусора,
которая позволит пользователю удалять/восстанавливать файлы через это приложение.
Поэтому я написал что-то вроде этого, создать намерение мусора через MediaStore#createTrashRequest, запустив с помощью ActivityResultLauncher:

Код: Выделить всё

val launcher = registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) {
// ...
}

// this uri from cursor query, hard code here just for the example
val uri = Uri.parse("content://media/external/images/media/1234")

val deleteIntent = MediaStore.createTrashRequest(contentResolver, listOf(uri), true)

launcher.launch(
IntentSenderRequest.Builder(deleteIntent.intentSender).build()
)
А вот мои разрешения AndroidManifest: Когда появится это диалоговое окно, нажмите «Разрешить»
[img]https:/ /i.sstatic.net/Um04k96E.png[/img]

Для файлов на устройстве все работает отлично. Элемент на устройстве был переименован в .trashed__, а столбец MediaStore IS_TRASHED также был помечен как 1. Увеличение генерации MediaStore.
Однако для них кто на SD-карте знал, что появляется системный диалог, нажатие кнопки «Разрешить» ничего не изменит. Имя файла на SD-карте осталось прежним, запись MediaStore IS_TRASHED по-прежнему равна 0,
и никаких исключений не было.
Но генерация MediaStore увеличивается, кажется странным...
Есть ли что-нибудь, что я пропустил?

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

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

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

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

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

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