在android中通过下载管理器下载有时不会下载,并且抛出错误路径似乎无效,过了一段时间就会自行更正。这是安卓下载管理器非常不寻常的行为。
我正在通过request.setDestinationInExternalPublicDir("/app/" , my_app.apk)
下载到外部存储器
当它没有下载时,它会在logcat中抛出这个错误:-
W/DownloadManager: Path appears to be invalid: /storage/emulated/0/app/my_app.apk
我想这是因为我在Android的自定义目录中下载,但我不能在其中使用Environment.DIRECTORY_DOWNLOADS
,我只能在自定义目录中进行下载。
如果有人有答案,请告诉我。)
您必须确保目录存在,这样才能使用-
File root = new File(context.getExternalFilesDir(null).getAbsolutePath() + "/app/");
if (!root.exists()) {
root.mkdirs();
}
然后您可以使用它来设置下载管理器路径
request.setDestinationUri(Uri.parse("file://" + context.getExternalFilesDir(null).getAbsolutePath() + "/app/my_app.apk"));
首先确保创建了一个名为"app"的目录,用于存储apk。创建目录:
File path = Environment.getExternalStorageDirectory();
File dir = new File(path.getAbsolutePath(), "/app/");
if (!dir.exists()) {
dir.mkdir();
}
如果你已经创建了这样的目录,那么试试这个:
request.setDestinationInExternalPublicDir("/app/" , "my_app.apk");