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

 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)中测试此代码时。我出错了。

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

最佳答案

对我来说,它的工作原理是:

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;
}

10-08 20:21