Я хочу проверить подключение к Интернету

я пробую код

ConnectivityManager cm =
        (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
                      activeNetwork.isConnectedOrConnecting();

Он проверяет только открытие и закрытие Wi-Fi или мобильной сети. Но я хочу проверить с доступом в Интернет. Например, открытый Wi-Fi, но может подключаться к Интернету.


person Kung    schedule 05.06.2016    source источник
comment
Проверьте мой ответ здесь " title="как проверить интернет-соединение перед запуском приложения и во время его работы"> stackoverflow.com/questions/37430738/   -  person sandesh    schedule 05.06.2016
comment
Сделать тестовый http-запрос на сайт?   -  person Ozgur    schedule 05.06.2016


Ответы (1)


Я использую пинг в Google, чтобы проверить, есть ли у пользователя реальное интернет-соединение, просто будьте осторожны, если ваш пользователь находится в Китае или любой другой стране, где Google заблокирован.

public boolean isOnline() {

    Runtime runtime = Runtime.getRuntime();
    try {

        Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
        int     exitValue = ipProcess.waitFor();
        return (exitValue == 0);

    } catch (IOException e)          { e.printStackTrace(); } 
      catch (InterruptedException e) { e.printStackTrace(); }

    return false;
}
person Ismael Di Vita    schedule 05.06.2016