我正在使用DownloadManager来排队我正在制作的一些下载,但在我专门尝试使用Mobile / 4G连接时遇到了这个问题。我正在使用Android 2.3.4手机。我的代码使用的是2.3.3 API。
我正在执行以下命令(我想强制连接使用4G / 3G)
request.setAllowedNetworkTypes(Request.NETWORK_MOBILE);
每当它尝试下载时,它会将下载放在DownloadManager列表中,但它永远保持“正在进行”状态,并且顶部的错误列出了文件名和错误“下载需要网络”。
当我进一步调查并连接我的设备以查看logcat中的日志时,我在尝试下载时看到以下错误:
中止下载请求92:请求下载不使用当前网络类型
我拥有以下权限:
android.permission.WRITE_OWNER_DATA
android.permission.READ_OWNER_DATA
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.CHANGE_WIFI_MULTICAST_STATE
android.permission.CHANGE_NETWORK_STATE
android.permission.CHANGE_WIFI_STATE
有什么想法可能是什么?我还缺少许可吗?是否还有其他设置需要控制才能指定仅使用网络连接?
编辑: 我在一个全新的Galaxy平板电脑上试过这个,这是我注意到使用这个设备的行为:当wifi打开并连接时,指定使用NETWORK_MOBILE时无法下载。如果wifi关闭或未连接,使用4G连接没有问题。我认为这是一个由设备完成的安全功能,可以覆盖吗?
答案 0 :(得分:1)
我不知道您是如何设置下载管理器的,但这就是我在通行证中使用它的方式。
private long enqueue;
private DownloadManager dm;
public void onClick(View view) {
dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Request request = new Request(
Uri.parse("File URL"));
enqueue = dm.enqueue(request);
}
public void showDownload(View view) {
Intent i = new Intent();
i.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS);
startActivity(i);
}
答案 1 :(得分:1)
当您没有数据连接时(无论您是否连接到wifi)都会发生此错误。您可以单独指定NETWORK_MOBILE ,但如果您的数据连接当前无法正常工作时尝试进行下载,则会向您显示“下载需要网络”错误。
我再次获得数据连接的建议是四处走动,直到再次建立连接。我可以告诉我什么时候在我的Droid Bionic手机上有数据连接,因为顶部栏图标表示 4G LTE 而 4栏转蓝色而不是白色。