Я изменяю код моего Android приложения (Java + native) на Android 10 Изменения в Scoped Storage.
Я объявил необходимые разрешения в своем манифесте:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Я запустил ACTION_OPEN_DOCUMENT_TREE, чтобы позволить пользователю выбрать каталог.
Что я делаю, я создаю файл на внешнем хранилище, отсоединяю дескриптор файла и перехожу к собственному коду:
DocumentFile df = documentFile.createFile("text/plain", "my_file");
ParcelFileDescriptor pfd = getApplicationContext().getContentResolver().openFileDescriptor(df.getUri(), "rw");
myNativeFunction(pfd.detachFd());
Теперь, нативная сторона читает / пишет из / в файл. И отвечает за закрытие файлового дескриптора.
У меня вопрос, как удалить этот файл по собственному коду?
Обычно, чтобы удалить файл, нужно передать ему имя пути (удалить ( ), функции unlink () принимают его как параметр). С Uri я не смог этого сделать - я получаю сообщение об ошибке «Нет такого файла или каталога».
Спасибо.