Как проверить интернет-соединение в Google Nexus 7 (Android 4.2)

Я использовал следующий код для проверки интернет-соединения.

 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). Я получил ошибку.

Исключение нулевого указателя в диспетчере соединений

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

Вам понадобится это разрешение в вашем манифесте:

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

Проверьте TYPE_MOBILE является нулевым или не использует приведенный ниже код.

connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) != null
Другие вопросы по тегам