одно решение может быть,
1) чтение байтов из inputStream выбранного файла.
я получаю «content: // media / external / images / media / 681» по этому URI onActivityResult.
Вы можете получить имя файла, запросив этот Uri у вас. получить inputStream этого. прочитайте это в байт [].
вот, пожалуйста, /
Uri u = Uri.Parse ("content: // media / external / images / media / 681");
Курсор курсора = contentResolver.query (и, ноль, ноль, ноль, ноль);
есть имя столбца "_data", которое вернет вам имя файла, из имени файла вы можете создать inputtream,
теперь вы можете читать этот поток ввода
byte data=new byte[fis.available()];
fis.read(data);
Итак, у вас есть данные (байтовый массив) с байтами изображений
2) создайте файл на SDCard и запишите с помощью байта [], сделанного на первом шаге.
File file=new File(fileOnSD.getAbsolutePath() +"your foldername", fileName);
FileOutputStream fout=new FileOutputStream(file, false);
fout.write(data);
как имя файла, которое вы уже используете в методе запроса, используйте то же самое здесь.