在进行网络连接之前,我使用此代码来设置连接。如果是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?
答案 0 :(得分:1)
我的代码存在很多问题。因此我完全选择了不同的路线。
我所做的是,我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();
}
}