ACTION_OPEN_DOCUMENT_TREE создание файла

Запускаю Intent.ACTION_OPEN_DOCUMENT_TREE с флагами для получения доступа на запись и чтение каталога:

 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
 intent.setType("*/*");  
 intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION  
                 | Intent.FLAG_GRANT_WRITE_URI_PERMISSION 
                 | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);  
 startActivityForResult(intent, REQUEST_FOLDER_ACCESS);

В onActivityResult() ловлю так:

 ContentResolver cr = context.getContentResolver();
 Uri uriFolder = intent.getData();
 int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION           | 
                          Intent.FLAG_GRANT_WRITE_URI_PERMISSION);       
 cr.takePersistableUriPermission(uriFolder, takeFlags);

В итоге получаю разрешение на чтение и запись к каталогу uriFolder, далее пытаюсь записать в этот каталог файл:

 Uri uriFile = Uri.withAppendedPath(uriFolder, "filename.txt");
 OutputStream os = cr.openOutputStream(uriFile, "w");

И при открытии потока на запись нарываюсь на IllegalArgumentException, который показывает на MalformedUri

Что я делаю не так?


Ответы (0 шт):