我创建了一个J2ME程序,并把它移植到黑莓Bold。
该程序做一些HTTP查询。 时不时地,这些失败的异常:“隧道失败”
我的APN设置是正确的(因为有时它的工作)。
我用“连接;deviceside=true
”附加到URL
我注意到,当浏览器刚刚被激活,程序总是工作。 然而,当浏览器一直不是几分钟主动和我启动程序,我得到的隧道失败的错误。
我创建了一个J2ME程序,并把它移植到黑莓Bold。
该程序做一些HTTP查询。 时不时地,这些失败的异常:“隧道失败”
我的APN设置是正确的(因为有时它的工作)。
我用“连接;deviceside=true
”附加到URL
我注意到,当浏览器刚刚被激活,程序总是工作。 然而,当浏览器一直不是几分钟主动和我启动程序,我得到的隧道失败的错误。
与一些黑莓手机的问题是,所有其他网络连接失败。 所以,你将有当您收到一个例外,再次尝试。 所以,你的连接代码应该是这样的
int numAttempts = 0;
boolean hasConnectedSuccessfully = false;
while(numAttempts < 2 && !hasConnectedSuccessfully)
{
try
{
// do the http connection
hasConnectedSuccessfully = true;
}
catch(Exception e)
{
hasConnectedSuccessfully = false;
}
finally
{
//close the connections
}
numAttempts++;
}
希望这应该解决您的问题
作为一个测试,你可能想尝试加入的网址本身的APN设置,看看是否有帮助。 我假设你有良好的信号强度?
至于愚蠢,因为这听起来即使你只从连接读取,打开连接器时,请确保您打开它以读/写
String url = "http://www.google.com";
HttpConnection connection = (HttpConnection)Connector.open(url, Connector.READ_WRITE, true);