3

我正在开发一个使用 HttpConnections 和 InputStreams 进行大量网络连接的黑莓应用程序。我一直在它可以访问 BES 的环境中对其进行测试,但将仅使用无线对其进行演示。

对 Bold 9000 的一些初步测试表明,虽然手机的网络浏览器可以上网,但我的应用程序不能。我的理解是BES通常处理大部分的网络逻辑,而黑莓本身并不擅长。

我已经看到一些关于必须将“;interface=wifi”添加到我尝试连接的 url 的引用,但是当我这样做时,逐步下载大型电影文件将在几秒钟后挂起。

是否还有其他方法可以让黑莓应用程序仅与无线一起使用?是否有我可以使用的签名类可以处理这个问题?

编辑

看起来正在发生的事情是网络无法正常工作的罕见机会——通用套接字异常。问题是对于大文件,我正在做很多连接,以 256k 的块为单位,所以对于大文件,最终会出现更多错误问题。我真的不知道如何处理这个。

编辑

我已经使用了我的 Connector.open 方法,使用具有超时选项的 .open 版本。如果一个特定的网络调用永远不会返回,这是我的问题,除了异常之外,它会在几秒钟后重试。它也对异常执行此操作。这充其量只是一个临时修复,如果有人知道提高非 BES 网络性能的方法,我很想听听。

4

1 回答 1

2

一个简单的解决方案是检查 WiFi 覆盖状态

public boolean GetWiFiCoverageStatus()  {
    if((WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED) &&
              RadioInfo.areWAFsSupported(RadioInfo.WAF_WLAN)) {
              // this.connectionString += ";interface=wifi";
              return true;
    } else return false;           
}

这将确保仅当设备连接到接入点时才建立连接。

编辑:

您应该检查的第二件事是此知识库条目(HTTP 413 请求实体太大)

第三个补充:您是否在连接字符串中使用了 ;deviceside=true ?如果没有 MDS 后端,您必须使用此附录来确保正常的 TCP/IP 连接

于 2009-10-26T11:44:10.293 回答