【问题标题】:Testing for connectivity not working properly测试连接不正常
【发布时间】:2015-02-02 18:32:50
【问题描述】:

在进行网络连接之前,我使用此代码设置连接。如果是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 而不是isConnectedisConnecting?呢?

【问题讨论】:

    标签: java android networking mobile


    【解决方案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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-16
      • 2019-08-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多