Папка внешнего хранилища Android (созданная с помощью SAF) и ее содержимое, ошибочно удаленное очистителем

private void triggerStorageAccessFramework() {

    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
    intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);

    startActivityForResult(intent, REQUEST_CODE_STORAGE_ACCESS);
}

@Override protected void onActivityResult (int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult (requestCode, resultCode, данные); если (requestCode == REQUEST_CODE_STORAGE_ACCESS) {

        if (resultCode == Activity.RESULT_OK) {

            // Get Uri from Storage Access Framework.
            Uri treeUri = data.getData();

            // Persist access permissions.
            final int takeFlags = data.getFlags()
                    & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

            getContentResolver().takePersistableUriPermission(treeUri, takeFlags);


            DocumentFile pickedDir = DocumentFile.fromTreeUri(DocumentTreeActivity.this, treeUri);

           

            DocumentFile rootDir = pickedDir.findFile("Images");

            if (rootDir == null || !rootDir.exists()) {
                rootDir = pickedDir.createDirectory("Images");
             
            }

} }

Я могу создать папку, я могу читать и записывать файлы из / в папку. Позже, после запуска приложения для очистки (встроенного, Redmi note 8 pro), папка и файлы были удалены. Сомневаюсь, что папка определяется как остаточная. Кто-нибудь, пожалуйста, помогите. Прости мой плохой английский


person arun    schedule 30.03.2021    source источник
comment
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION); Лучше убрать эти флаги. В них нет смысла. Вы не можете ничего дать.   -  person blackapps    schedule 30.03.2021


Ответы (1)


Я решил проблему, изменив имя папки на имя, отличное от имени приложения. Я не знаю логики / трюка. Но это работает.

person arun    schedule 22.06.2021