0

我正在开发一个应用程序,我需要在其中检查互联网连接是否可用。我编写的代码似乎可以处理所有情况,但它在我的模拟器中不起作用。我的代码:

public boolean hasConnection() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo wifiNetwork = cm
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (wifiNetwork != null && wifiNetwork.isConnected()) {
            return true;
        }

        NetworkInfo mobileNetwork = cm
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (mobileNetwork != null && mobileNetwork.isConnected()) {
            return true;
        }

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null && activeNetwork.isConnected()) {
            return true;
        }
        return false;
    }

问题是它永远不会返回false互联网连接是否可用,无论是在设备中还是在我的模拟器中。但如果设备连接到 wifi 连接,它运行良好。那个片段有什么问题?

4

1 回答 1

-1

试试这个方法。

private boolean IsNetworkAvailable() {
    ConnectivityManager mConnectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo mActiveNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
    return mActiveNetworkInfo != null && mActiveNetworkInfo.isConnected();
}

您还需要:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2013-08-17T04:52:37.403 回答