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):

https://github.com/voidcode/Diaspora-Webclient/blob/master/src/com/voidcode/diasporawebclient/MainActivity.java

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; 
}
Другие вопросы по тегам