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

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

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

设备A与设备B的热点连接,设备A与Wi-Fi连接,设备B连接热点。

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

像ConnectivityManager这样的类有助于确定设备是否与networking连接,而不是与互联网连接有关。

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

    这可能是一个荒谬的解决办法,但我认为这也可能是真正的解决办法:

    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; } 

    尝试下面的function来检查你的networking连接:

      public static boolean isInternetConnected(Context mContext) { try { ConnectivityManager connect = null; connect = (ConnectivityManager) mContext .getSystemService(Context.CONNECTIVITY_SERVICE); if (connect != null) { NetworkInfo resultMobile = connect .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo resultWifi = connect .getNetworkInfo(ConnectivityManager.TYPE_WIFI); if ((resultMobile != null && resultMobile .isConnectedOrConnecting()) || (resultWifi != null && resultWifi .isConnectedOrConnecting())) { return true; } else { return false; } } } catch (Exception e) { e.printStackTrace(); } return false; } 

    将以下权限添加到您的清单文件,

      <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />