Страницы

Поиск по вопросам

воскресенье, 1 декабря 2019 г.

Как проверить есть ли на устройстве доступ к интернету?

#java #android


Как можно проверить есть ли на устройстве доступ к интернету?
    


Ответы

Ответ 1



Функция public boolean isOnline() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); return netInfo != null && netInfo.isConnectedOrConnecting(); } И в манифест: Взял отсюда

Ответ 2



Хотелось бы кое что добавить. Если Вам требуется проверить наличие какого либо соединения, то метод предложенный Андрей'ем безусловно подойдет. Однако, если необходимо проверить наличие именно интернета на устройстве, то метод может работать не так, как мы ожидаем. В качестве примера приведу такую ситуацию: Имеется WLAN без доступа к интернет, и устройство, которое к этой сети подключено. Как думаете, что вернет метод isOnline()?- ответ true. Если же такая ситуация неприемлема, то приведу код для проверки реального интернет соединения, честно позаимствованный здесь. public boolean isReallyOnline() { 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; }

Комментариев нет:

Отправить комментарий