Как проверить подключение к Интернету в сети в Android (используя интернет другого устройства через HOTSPOT)

У меня есть требование, когда я хочу проверить, есть ли какое-либо подключение к Интернету, когда я подключен к сети.

Например, у меня есть устройство A и устройство B.

Устройство A связано с точкой доступа с точкой доступа устройства B. В устройстве A я подключаю его как Wi-Fi, а в устройстве B – к одному устройству, подключенному к горячей точке.

Теперь, если я удалю интернет с устройства B (а не модемную точку доступа), то в устройстве A он все еще отображается – подключен к Wi-Fi, но нет подключения к интернету.

Такие классы, как ConnectivityManager, помогают определить, связано ли устройство с сетью, а не о подключении к Интернету.

Я хочу отслеживать эту проблему. Есть ли способ достичь этого?

Solutions Collecting From Web of "Как проверить подключение к Интернету в сети в Android (используя интернет другого устройства через HOTSPOT)"

Это может быть смешное решение, но я думаю, что это может быть реальное решение:

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

Попробуйте выполнить следующую функцию, чтобы проверить подключение к Интернету:

  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" />