2009-09-01 89 views
2

有没有什么办法可以知道网络是否在。我有下面的代码blackbery设备连接或没有,但它是等到网络超时。黑莓收到通知。

int rc = connection.getResponseCode(); 
if (rc != HttpConnection.HTTP_OK) { 
throw new IOException("HTTP response code: " + rc); 
} 

有没有其他办法。

回答

3

有用于获取网络信息的几个API:

RadioInfo.isDataServiceOperational(); 
CoverageInfo.isOutOfCoverage(); 
WLANInfo.getWLANState(); 
+1

+1 RadioInfo.getState()也可能是在努力为用户创建一个强大的/有用的错误信息很有帮助。 – Fostah 2009-09-01 12:26:03

4

这个问题的标题比问题的主体有不同的含义。基于该标题,则可以当网络通过使用RadioStatusListener接口,它定义一个networkStarted()函数开始通知。然后,您可以使用coldice建议的检查来确保当前网络支持数据传输。

RadioStatusListner JavaDocs

+2

我第二变形点焊此,具体内RadioStatusListner的networkStateChange(INT状态)方法。这将为您节省后台线程始终检查网络状态的麻烦。 虽然我也建议检查RadioInfo.isDataServiceOperational()之前使每个时间的数据连接。考虑到你可能会等待超时,这是一个建议的做法。 – AtariPete 2009-09-01 14:58:42