0

我使用以下代码检查 android 设备的网络状态(Source

public boolean isNetworkAvailable() {
    ConnectivityManager cm = (ConnectivityManager) 
      getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        return true;
    }
    return false;
} 

在我的手机上运行它后,我发现当网络可用时它确实返回“true”。但是当我在手机上打开飞行模式时,我发现它仍然返回“true”。这里有什么问题?此外,“真实”是否意味着 wifi 也已打开或只是蜂窝网络可用?

谢谢

PS:是的,我在清单中添加了 ACCESS_NETWORK_STATE 权限。

4

1 回答 1

0

你说的对。真正的价值意味着有来自 wifi 或蜂窝网络的互联网连接。您可以打开飞行模式,但如果您的方法仍然有 wifi,您的方法将返回 true。另请参阅:http: //developer.android.com/reference/android/net/NetworkInfo.html#isConnected()

于 2014-02-10T18:11:26.110 回答