ConnectivityManager getActiveNetworkInfo () является всегда нулевой, даже если трафик данных активен

Я работаю над проектом 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 всегда ложно и getState () = DISCONNECTED. Однако у меня включен и работает операторский трафик данных (в других приложениях)

[РЕДАКТИРОВАТЬ] : кстати, я тестирую это прямо на устройстве, а не в эмуляторе :).

Заранее спасибо. С уважением.

8
задан t.pateiro 23 May 2011 в 14:30
поделиться