如何检查Android中网络中的互联网连接(通过HOTSPOT使用其他设备的互联网)

我有一个要求,我想检查当我与网络连接时是否有任何互联网连接。

例如,我有设备A和设备B.

设备A与设备B的热点连接。在设备A中,将其与Wi-Fi连接,并在设备B中连接一个与热点相连的设备。

现在,如果我从设备B(而不是连接热点)中删除互联网,那么在设备A中,它仍然显示 – 与Wi-Fi连接,但没有互联网连接。

类别如ConnectivityManager有助于确定设备是否与网络连接,而不是互联网连接。

我想跟踪这个问题。有没有办法实现这一点?

最佳答案
这可能是一个可笑的解决方案,但我认为也可以是真正的解决方案:

public boolean isOnline() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        try {
            URL url = new URL("http://www.google.com");
            HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
            urlc.setConnectTimeout(3000);
            urlc.connect();
            if (urlc.getResponseCode() == HttpURLConnection.HTTP_OK) {
                return new Boolean(true);
            }
        } catch (MalformedURLException mue) {
            // TODO Auto-generated catch block
            mue.printStackTrace();
        } catch (IOException ie) {
            // TODO Auto-generated catch block
            ie.printStackTrace();
        }
    }
    return false;
}

转载注明原文:如何检查Android中网络中的互联网连接(通过HOTSPOT使用其他设备的互联网) - 代码日志