2

我正在使用 DownloadManager 对我正在制作的一些下载进行排队,但是当我特别尝试使用 Mobile/4G 连接时遇到了这个问题。我使用的是 Android 2.3.4 手机。我的代码使用的是 2.3.3 API。

我正在执行以下命令(我想强制连接使用 4G/3G)

request.setAllowedNetworkTypes(Request.NETWORK_MOBILE);

但是,无论何时尝试下载,它都会将下载内容放在 DownloadManager 列表中,但它永远保持“进行中”状态,顶部的错误列出了文件名和错误“下载需要网络”。

当我进一步调查并连接我的设备以查看 logcat 中的日志时,我在尝试下载时看到以下错误:

Aborting request for download 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连接没有问题。我在想这是设备正在执行的安全功能,可以覆盖吗?

4

2 回答 2

1

我不知道您是如何设置下载管理器的,但这就是我在 pass 中使用它的方式。

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);
}
于 2011-12-21T20:16:30.293 回答
1

当您没有数据连接时会发生此错误(无论您是否连接到 wifi)。您可以自行指定 NETWORK_MOBILE 但如果它在您的数据连接当前不工作时尝试进行下载,则会向您抛出“下载需要网络”的错误消息。

我再次获得数据连接的建议是四处走动,直到您再次获得连接为止。我可以知道我的 Droid Bionic 手机何时有数据连接,因为顶部栏图标显示4G LTE4 个栏变成蓝色而不是白色。

于 2012-01-17T22:19:52.717 回答