我有下面的代码,用于检查正在使用的网络是 Cell 还是 WiFi。如果 WiFi 则返回字符串 WiFi,如果 cell 返回字符串 Cell。我的代码是:
private String checkNetworkState() {
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
// NetworkInfo mEthernet = connManager.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);
NetworkInfo m3G = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mWifi!=null) isOnWifi = mWifi.isConnected();
if (m3G!=null) is3G = m3G.isConnected();
if(isOnWifi == true) {
return "WiFi";
}
else {
return "Cell";
}
}
我已经在启用 WiFi 的情况下进行了调试。isOnWifi 为真,is3G 为假。但是, if 和 else 都被调用,为什么会这样?
话虽如此,我得到的返回字符串实际上是“WiFi”,而不是 Cell。这是平常的吗?