ConnectivityManager не работает на Motorola Xoom (Сота 3,2)
У меня есть вызов метода isNetworkAvailable()
чтобы проверить, есть ли у пользователя включение wap / wifi/wimax, это работает для Android 2.1 до 2.3+.
Но теперь пользователь приложения, использующего Honeycomb 3.2 в Motorola Xoom, сказал мне, что не может открыть приложение.
В моем веб-интерфейсе разработчика Android я вижу эту ошибку журнала: http://paste.ubuntu.com/811881/
private boolean isNetworkAvailable()
{
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobileInfo = connec.getNetworkInfo(0);
NetworkInfo wifiInfo = connec.getNetworkInfo(1);
NetworkInfo wimaxInfo = connec.getNetworkInfo(6);
if (wimaxInfo!=null) {
return mobileInfo.isConnected() || wifiInfo.isConnected()|| wimaxInfo.isConnected();
}
else {
return mobileInfo.isConnected() || wifiInfo.isConnected();
}
}
Смотрите весь класс / деятельность здесь (строка 276):
2 ответа
Решение
mobileInfo или wifiInfo могут быть нулевыми. На устройстве только для Wi-Fi я не удивлюсь, если mobileInfo (ConnectivityManager.TYPE_MOBILE) будет нулевым.
Я столкнулся с той же проблемой с Motorola Xoom, потому что он не имеет поддержки подключения для ConnectivityManager.TYPE_MOBILE
,
Следующий код работает нормально для меня:
ConnectivityManager connMngr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
return connMngr.getActiveNetworkInfo().isConnected();
} catch (NullPointerException npe) {
return false;
}