在进行网络连接之前,我使用此代码设置连接。如果为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();
    }
}

09-10 11:06
查看更多