Мое приложение должно скопировать файл из личной папки приложения в папку SAF с соответствующими предоставленными разрешениями.
Используемый код:
static boolean copyFileToTargetFolderWithNewName(Activity activity, String docUri,String targetFolderUri,String newName)
{
deleteIfExisting(activity,Uri.parse(targetFolderUri),newName);
File newFile = new File(docUri);
Uri contentUri = FileProvider.getUriForFile(activity, "com.myappname.fileprovider", newFile);
ContentResolver resolver = activity.getContentResolver();
boolean result=false;
Log.d("copy",contentUri+" "+targetFolderUri+" "+newName);
try {
//error here
Uri newUri=DocumentsContract.copyDocument(resolver,contentUri,Uri.parse(targetFolderUri));
DocumentsContract.renameDocument(resolver,newUri,newName);
result=true;
} catch (FileNotFoundException e) {
result=false;
}
return result;
}
Выходные данные журнала дают:
D / copy: content: //com.myappname.fileprovider/external_files/Android/data/com.myappname.app/files/subfolder/file.txt
content: // com.android.providers.downloads.documents / tree / raw% 3A% 2Fstorage% 2Femulated% 2F0% 2FDownload% 2FSAFпапка / подпапка
newname.txt
Что не так?Это проблема флагов?Два домена не совместимы для копирования?