Я плохо знаком с разработкой Android и работающий над приложением Android, которое требует, чтобы телефон был подключен к Интернету, или через Wi-Fi, EDGE или через 3G.
Это - код, который я использую к проверке, доступно ли интернет-соединение
public static boolean isConnected()
{
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo().isConnectedOrConnecting();
}
Я также установил эти полномочия в файле манифеста
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Это хорошо работает в рабочей версии 1.5 эмулятора Android, когда 3G включен, но это отказывает, когда я отключаю соединение 3G. Мое приложение бросает исключение нулевого указателя, когда я называю isConnectedOrConnecting (). То же самое также происходит на моем HTC Desire рабочий Android 2.1.
Надеюсь, что любой знает решение этого.
Заранее спасибо!
Если сбой произошел непосредственно на вашей строке:
return cm.getActiveNetworkInfo().isConnectedOrConnecting();
то это означает, что getActiveNetworkInfo()
вернул null
, потому что нет активной сети - в этом случае ваш метод isConnected()
должен вернуть false
.