2

这是我用来确定手机是否连接到 Internet 的代码:

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。3G即使计算机已断开 Internet,我也会在模拟器的最顶部栏上看到一个标志。我的代码有问题,还是模拟器问题?

4

1 回答 1

2

如果您想在调用时确定设备是否已连接则应调用isConnected而不是。isConnectedOrConnectingisOnline

通常,模拟器上的硬件功能 API 存在许多问题/错误,这可能就是其中之一。你的代码很好。

于 2013-06-25T00:56:06.460 回答