ConnectivityManager不适用于Motorola xoom(蜂窝3.2)

时间:2012-01-20 03:26:57

标签: android android-3.0-honeycomb motorola-droid

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

但现在该应用的用户在Motorola xoom上使用了蜂窝3.2 与我保持良好关系,他无法打开应用程序。

在我的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 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我遇到了与摩托罗拉Xoom相同的问题,因为它没有ConnectivityManager.TYPE_MOBILE的连接支持。

以下代码对我来说很好:

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