0

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

但是现在,在摩托罗拉 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

4

2 回答 2

0

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

于 2012-01-30T13:15:09.313 回答
0

我在使用摩托罗拉 Xoom 时遇到了同样的问题,因为它不支持ConnectivityManager.TYPE_MOBILE.

以下代码对我来说工作正常:

ConnectivityManager connMngr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
try { 
    return connMngr.getActiveNetworkInfo().isConnected(); 
} catch (NullPointerException npe) { 
    return false; 
}
于 2012-11-19T14:10:29.057 回答