Функция ConnectivityManager getActiveNetworkInfo () всегда равна нулю даже при активном трафике данных - PullRequest
8 голосов
/ 23 мая 2011

Я работаю над проектом Android, и мне нужно было проверить подключение к интернету.Я искал в Интернете, и я нашел решение здесь на stackoverflow.Тем не менее, у меня проблемы с проверкой состояния интернета.Я уже искал везде, но я не могу найти решение для моей проблемы.

Вот манифест:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

Вот код для проверки, если интернет подключен:

cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
if (cm != null) {
NetworkInfo ni = cm.getActiveNetworkInfo();
isConnected = (ni != null && ni.isAvailable() && ni.isConnected()) ? true : false;
}

Проблема в том, что даже при активном трафике данных TYPE_MOBILE переменная ni всегда равна нулю.Чтобы получить доступ к интернет-трафику операторов, это правильный способ его тестирования?Или я должен использовать TelephonyManager?Это странно, потому что я использовал getNetworkInfo () [] и отладил его, там появляется HSPA для TYPE_MOBILE, но isAvalaible всегда false и getState () = DISCONNECTED.Однако у меня включен и работает трафик данных оператора (в других приложениях)

[EDIT] : кстати, я тестирую его непосредственно на устройстве, а не в эмуляторе:).

Заранее спасибо.Привет.

1 Ответ

8 голосов
/ 29 сентября 2011

В ConnectivityManager.

имеются различные ошибки * См., Например, http://code.google.com/p/android/issues/detail?id=11866 и http://code.google.com/p/android/issues/detail?id=11891.

...