我有一个使用DownloadManager下载数据库的Android应用程序。
将应用程序升级到SDK 26之后,我们开始在数据库下载方面遇到麻烦。
我们开始有用户告诉我们他们无法下载数据库。似乎下载从未开始。使用Android 7、8或9的用户会遇到这种情况。
我们无法在我们的终端或模拟器中复制它。
在清单中,我们具有以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我们用来开始下载的代码是这样的:
private DownloadManager mgr = null;
private long lastDownload = -1L;
...
Uri uri = Uri.parse("http://server.com/file.zip");
final String nombreFicheroDestino = "myfile" + System.currentTimeMillis() + ".zip";
lastDownload = mgr.enqueue(new DownloadManager.Request(uri)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setTitle(getResources().getString(R.string.ID_0000_app_name))
.setDescription(getResources().getString(R.string.ID_1200_descarga_bd))
.setDestinationInExternalPublicDir(VersionManager.getInstallationDirectory(DownloadActivity.this), nombreFicheroDestino));
在此之前,我们先向用户请求存储权限,并且只有在用户向我们授予了我们应用程序存储权限的情况下,我们才开始下载。
奇怪的是,只有少数用户在下载数据库时遇到问题,而我们无法复制它。
我们的代码有什么问题吗?
在更新到SDK 26来编译应用程序之后,是否有人开始对DownloadManager遇到问题?