这是我用来确定手机是否已连接到互联网的代码:
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,也会返回true。即使计算机不在Internet上,我也会在模拟器的最顶部栏上看到3G
符号。我的代码有问题,还是这是一个模拟器问题?
答案 0 :(得分:2)
如果您想确定设备是否在通话时连接到isConnected
,则应拨打isConnectedOrConnecting
而不是isOnline
。
通常,模拟器上存在许多硬件功能API的问题/错误,这可能是其中之一。你的代码很好。