Проверка интернет-соединения на android

У меня есть следующий код для проверки интернет-соединения Wi-Fi / EDGE / GPRS / 3G в моем приложении.

код

public static boolean checkConn(Context ctx) {
    ConnectivityManager conMgr = (ConnectivityManager) ctx
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
        || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING) {
        return true;
    } else if (conMgr.getNetworkInfo(0).getState()==NetworkInfo.State.DISCONNECTED
        || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED){
        return false;
    }
    return false;
}

, и я вызываю его, как показано ниже:

if (CheckInternet.checkConn(introPage.this) == true) {
    Intent toMainPage = new Intent(introPage.this, mainPage.class);
    System.gc();
    startActivity(toMainPage);
} else if (CheckInternet.checkConn(getApplicationContext()) == false) {
    Toast.makeText(getApplicationContext(),
        "Sorry, No internet connectivity found", Toast.LENGTH_SHORT)
            .show();
}

Но у меня проблема, то есть, если я подключен к Wi-Fi и открываю приложение, оно работает нормально, но если я закрываю приложение, выключаю Wi-Fi и повторно открываю приложение, это не из-за ошибки «нет подключения», мне нужно чтобы выключить мое устройство, а затем включить его, и тот же случай, если Wi-Fi отключен, и я открываю приложение, оно выдает ошибку «нет соединения», и если я включаю его, оно все равно выдает ту же ошибку «нет» соединение ", пока я не выключу и не включу устройство.

22
задан Sam 26 June 2014 в 08:24
поделиться