在我的应用中,我让android默认下载管理器为我下载apk文件:
DownloadManager.Request request = new DownloadManager.Request(parse(getLink()));
request.setTitle(context.getString(R.string.app_name));
request.setDescription(context.getString(R.string.downloading));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
String fileName = URLUtil.guessFileName(getLink(), null, MimeTypeMap.getFileExtensionFromUrl(getLink()));
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
long updateId = manager.enqueue(request);
下载已在所有android版本上成功完成。当用户点击API <23上的“下载完成”通知时,它将启动apk安装程序,但是当API> = 23(仿真器)时,它将显示“无法打开文件”消息!
我检查了读写权限(即使在运行时)是否都已设置。我也尝试检查设备日志,但不知道可能是什么问题。那么可能是什么问题,我应该如何解决呢?
旁注:在运行Android P的真实设备上,当点击“下载完成”通知时,它将尝试使用xml / zip查看器打开文件。