У меня есть следующий код для проверки интернет-соединения wifi / 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 выключен, и я открываю приложение, он выдает ошибку «нет связи», иесли я включаю его, он все равно выдает ту же ошибку «нет соединения», пока я не выключу и не включу устройство.