2013-12-01 3 views
0

я найти решение, чтобы проверить доступ к Интернету, но он не работает на всех устройствахПроверьте доступ в Интернет Android

How to check internet access on Android? InetAddress never times out

public boolean isOnline() { 
    ConnectivityManager cm = 
     (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
     return true; 
    } 
    return false; 
} 

Это решение работает на вкладке Samsung Galaxy 2 1,10 (Android 4.1.2).

Но не на HTC Wildfire (Android 2.3.5)

На втором устройстве NETINFO всегда нулевые

Спасибо за вашу помощь

ответ

1

согласно ниже Documentation возврата Нулевого из NO еще потому по умолчанию сети (сети передачи данных).

Похоже, что только isConnected() может помочь вам определить, будет ли он подключен или нет. Я пробовал по 4 телефонам (Sony Ericson, samsung (2 телефона), Nexus Lg), он показывает идеальный результат по мере необходимости.

общественного NetworkInfo getActiveNetworkInfo()

Добавлено в уровне API 1 Возвращает сведения о текущей активной сети передачи данных по умолчанию. При подключении эта сеть является маршрутом по умолчанию для исходящих соединений. Вы должны всегда проверять isConnected() перед началом сетевого трафика.

Это может вернуть значение null, когда сеть по умолчанию отсутствует.

Возвращает объект NetworkInfo для текущей сети по умолчанию или нуль, если нет сети сети по умолчанию не активна в данный момент Этот метод требует вызова для удержания permission ACCESS_NETWORK_STATE.

+0

Спасибо за ваш ответ, я думаю, что это связано с сетью. – Ajouve

0

Это не достаточно ...

С ConnectivityManager, вы знаете, если ваш телефон имеет подключение к доступной (Wi-Fi или 4G). Но вы не уверены, действительно ли у вас есть доступ в Интернет (вы можете подключиться к Wi-Fi-узлу с ограниченным соединением или нуждаться в идентификации.

После тестирования соединения (используя ConnectivityManager) вам нужно выполнить ping-сайт.

Вот лучший ответ, который объясняет, как и что делать: Ping a Server

Смежные вопросы