connectivitymanager.getActiveNetworkInfo()在Internet关闭时返回true(Android)?
这是我用来确定手机是否连接到互联网的代码:connectivitymanager.getActiveNetworkInfo()在Internet关闭时返回true(Android)?,android,connectivity,Android,Connectivity,这是我用来确定手机是否连接到互联网的代码: public boolean isOnline() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null && netIn
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
在模拟器上,即使我关闭电脑的Wi-Fi,这也会返回真值。我在模拟器最上面的条上看到了一个
3G
标志,即使电脑不上网。我的代码是否有问题,或者这是仿真器的问题?如果要确定在调用isOnline
时设备是否已连接,则应调用isConnected
,而不是isConnectedOrConnecting
通常,模拟器上的硬件特性API存在许多问题/bug,这可能是其中之一。您的代码很好。emulator中有一个飞行模式(我猜)。关闭它,该方法应返回
false
您能确认此代码在真实设备上工作吗?谢谢。是的,我将尝试在我的设备上运行它。它在我的Galaxy S2上按预期工作:isOnline
当设备在WiFi或蜂窝网络上时返回true,当它们都不在时返回false。