在进行网络连接之前,我使用此代码设置连接。如果为NONE
,则无法显示错误。现在,我收到了很多用户抱怨此错误消息的报告,告诉我他们可以在其他应用程序上使用互联网。
final NetworkInfo activeNetwork = connectionManager.getActiveNetworkInfo();
if (activeNetwork == null || !activeNetwork.isConnected()) {
newNetworkType = NetworkStatus.NONE;
} else {
if (activeNetwork.getTypeName().equalsIgnoreCase("MOBILE")) {
newNetworkType = NetworkStatus.LOW;
} else {
newNetworkType = NetworkStatus.HIGH;
}
}
这段代码已连接到NetworkChangedReceiver,并不断进行更新。现在,我想知道这段代码是否无法正常工作。我应该依靠其他方法吗?例如,
activeNetwork == null
真的表示没有互联网连接吗?我应该使用NetworkInfo.isAvailable
代替isConnected
吗?那么isConnecting?
最佳答案
好吧,这段代码有很多问题。因此,我完全选择了另一条路线。
我要做的是,对要与之通信的网站执行ping操作。
它在两方面有帮助
a)检查您的互联网状况
b)您的网站是否在线
HttpURLConnection connection = null;
try {
URL u = new URL("http://www.yourwebsite.com/");
connection = (HttpURLConnection) u.openConnection();
connection.setRequestMethod("HEAD");
int code = connection.getResponseCode();
// You can determine on HTTP return code received. 200 is success.
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}