Как определить, если интернет-соединение в настоящее время доступно и активно на устройстве Android? - PullRequest
3 голосов
/ 11 ноября 2010

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

так: он хочет запланировать службу обновлений на какую-то дату, и когда она запустится, она должна определить, МОЖЕТ ли она действительно достичь целевого сервера или нет. следовательно, просто "устройство подключено к Wi-Fi?" не достаточно, так как устройство может быть подключено к беспроводной сети, которая не предлагает доступ в Интернет. требуется что-то вроде PING ...

Какой самый простой / лучший способ определить, доступно ли подключение к Интернету, т. Е. Доступен ли сервер?

Ответы [ 4 ]

4 голосов
/ 11 ноября 2010
boolean connected;            
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
            if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || 
                    connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
                //we are connected to the internet
                connected = true;
            }
            else
                connected = false;

добавить разрешение: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2 голосов
/ 11 ноября 2010

Просто попробуйте подключиться к вашему серверу и установите тайм-аут, если вы не начали процесс загрузки в приемлемый период времени.

1 голос
/ 11 ноября 2010

Посмотрите на этот ответ здесь, на StackOverflow.Это должно быть именно то, что вы ищете.

0 голосов
/ 03 января 2012

Здесь - лучший ответ на проблему:

Устройство подключено к маршрутизатору, но нет активного интернет-шлюза.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...