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