1

我使用以下代码检查互联网连接。

 public static boolean checkNetworkConnection(Context context) {
        boolean connected = true;
        ConnectivityManager connectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
                .getState() == android.net.NetworkInfo.State.CONNECTED
                || connectivityManager.getNetworkInfo(
                        ConnectivityManager.TYPE_WIFI).getState() == android.net.NetworkInfo.State.CONNECTED) {
            connected = true;
        } else
            connected = false;
}

此代码在以下移动设备中运行良好。但它不适用于 Google nexus 7 (android 4.2)。

当我在 Google nexus 7 (android 4.2) 中测试这段代码时。我有错误。

连接管理器中的空指针异常

4

2 回答 2

2

对我来说它有效:

public static boolean isInternetEnabled() {
    ConnectivityManager conMgr = (ConnectivityManager) YourApp.context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = conMgr.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting())
        return true;
    else
        return false;
}
于 2013-06-21T08:43:19.787 回答
1

您将在清单中需要此权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

检查TYPE_MOBILE为空或未使用以下代码。

connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) != null
于 2013-06-21T08:55:53.143 回答