ConnectivityManager不适用于摩托罗拉xoom(蜂窝3.2)



我有一个方法调用isNetworkAvailable()检查用户是否启用了wap/wifi/wimax,这适用于Android 2.1到2.3+。

但现在,该应用程序的用户在摩托罗拉xoom上使用蜂窝3.2他不能打开应用程序。

在我的android开发者web界面中,我可以看到以下日志错误: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

mobileInfo或wifiInfo可能为空。在只有wifi的设备上,如果mobileInfo(ConnectivityManager.TYPE_MOBILE)为null,我不会感到惊讶。

我在摩托罗拉Xoom上也遇到过同样的问题,因为它不支持ConnectivityManager.TYPE_MOBILE的连接。

以下代码对我来说运行良好:

ConnectivityManager connMngr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
try { 
    return connMngr.getActiveNetworkInfo().isConnected(); 
} catch (NullPointerException npe) { 
    return false; 
}