которая позволит пользователю удалять/восстанавливать файлы через это приложение.
Поэтому я написал что-то вроде этого, создать намерение мусора через 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()
)
Код: Выделить всё
[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
Мобильная версия