我能够连接到网络服务并使用各种设备下载数据,例如 OS 4.6 或更高版本的 BlackBerry 9000。
但是,对于 8330 和 OS 4.5.0.77,它不起作用。我没有在任何比 8330 和 4.5.0.77 旧的设备上尝试过这个代码。在 8330 上,它resultObj = op.invoke(inputObject);
在 JSR172 网络服务调用中挂起。这是在成功进行第一个 web 服务调用之后——它挂在第二个上。
实际上有两个网络服务:
- 用于身份验证的 Web 服务。
- 用于下载所有信息的网络服务。
到目前为止我尝试过的事情:
- 擦拭设备 - 什么也没做
- 将设备连接到 Eclipse 以查看发生了什么 - 没有发现任何有用的东西
- 在带有 4.5(MDS 运行)的 8330 模拟器上运行代码 - 可以完美运行,没有问题
有谁知道如何解决这个问题?
这是我构建连接字符串的方式:
String webserviceURL = developmentUrl;
// if it is simulator then force the network that is available on
// the PC
if (DeviceInfo.isSimulator()) {
webserviceURL += ";deviceside=true";
} else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS) {
// go through MDS
webserviceURL += ";deviceside=false";
}
// else if ((CoverageInfo.getCoverageStatus() &
// CoverageInfo.COVERAGE_CARRIER) == CoverageInfo.COVERAGE_CARRIER)
// {
// webserviceURL += "'deviceside=true";// go direct
// }
// check if the wifi is available and change the url to use the wifi
// signal
if ((RadioInfo.getActiveWAFs() & RadioInfo.WAF_WLAN) != 0)
// check for carrier
{
if (WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED)
// check for wifi
{
// WebService URL when the app is being used in the
// actual device
webserviceURL = webserviceURL + ";interface=wifi";
}
}
// WebService URL when the app is being used in the actual device
_propertyValues = new Object[] { webserviceURL };