2

我正在尝试使用以下代码下载 zip 文件;

HttpConnection httpConn = null;
InputStream inStream = null;
int responseCode = 0;

String connParams = "  ;interface=wifi;deviceside=true;";
httpConn = (HttpConnection) Connector.open(src + connParams);

responseCode = httpConn.getResponseCode();
if (responseCode != HttpConnection.HTTP_OK) {
    throw new IOException("Response: " + responseCode);
}

// Other relevant code

这样,在使用时interface=wifi;deviceside=true;,它的工作正常。这意味着我必须依赖 WiFi 网络。但我想使用 2G/3G 链接下载文件。为此,我在删除interface=wifi;连接参数后尝试了相同的代码。但它抛出IOException: tunnel failed异常。

请指导我如何使其在非 WiFi 网络上工作。

我正在以下环境中开发;

  • 黑莓 JDE Eclipse 插件 1.5.0
  • 黑莓操作系统 4.5
  • 带有 3G 卡的黑莓 Bold
4

2 回答 2

1

在 BlackBerry 4.5 上,您仍然需要担心在连接字符串的末尾正确添加后缀。

interface=wifi;deviceside=true;

如果您只想使用 Wi-Fi 连接,则它是一个有效的连接字符串后缀。有关支持 BlackBerry 支持的许多其他类型传输的更多信息,您可以查看我对这个类似堆栈溢出问题的 (2) 答案。在一个答案中,我将您指向黑莓网站上的链接。

在另一个答案中,我发布了一些示例代码,其中包含用于选择传输的算法,并为该传输创建连接字符串后缀。有关正确后缀的示例,请参见getWifiConnection()getBesConnection()、等方法。getSimConnection()

于 2012-06-30T05:18:17.900 回答
1

好吧,我之前也遇到过这个问题,我决定做一些处理来知道最好的连接类型,这是我使用的代码:

http://www.localytics.com/blog/2009/how-to-reliably-establish-a-network-connection-on-any-blackberry-device/

于 2012-07-03T13:51:46.350 回答