Android java.lang.SecurityException:目标必须位于外部存储上

Android java.lang.SecurityException:目标必须位于外部存储上,android,Android,在安卓电视中,U盘挂载/mnt/usb/sdb4,使用安卓下载管理 File pathyr = new File("/mnt/usb/sdb4"); Uri downloadUri = Uri.parse(DOWNLOAD_FILE); DownloadManager.Request request = new DownloadManager.Request(downloadUri); request.setDestina

在安卓电视中,U盘挂载/mnt/usb/sdb4,使用安卓下载管理

 File pathyr = new File("/mnt/usb/sdb4");
            Uri downloadUri = Uri.parse(DOWNLOAD_FILE);
            DownloadManager.Request request = new DownloadManager.Request(downloadUri);
            request.setDestinationUri(Uri.fromFile(new File( pathyr,"100mb.jpg") ));


目前,
DownloadManager
请求只接受由
环境检索的“标准”外部存储上的路径。getExternalStoragePublicDirectory(yourDirOfChoice)
环境。getExternalStorageDirectory()
;否则,它将抛出此异常


有关更多信息,请参阅StackOverflow问题。

这不适用于Android Pie。 你需要打电话

.setDestinationInExternalFilesDir()
//Pasing in the getFilesDir().absolutePath, your file

不要硬编码路径。使用环境获取它。您在清单文件中添加了权限吗?我不是harcoding,我对外部存储既有读取权限,也有写入权限,并且在某些手机上出现此错误。@tasomaniac:请参阅我的答案。
.setDestinationInExternalFilesDir()
//Pasing in the getFilesDir().absolutePath, your file