Возвращаемое значение в ConnectivityManager и / или NetworkInfo в ADT - Android
Когда я использую приведенный ниже код для отображения состояния моего соединения, условие "if" всегда возвращает "true", если только я не поставил "netinfo" равным "null".
В чем проблема?
public boolean isConnectedToInternet()
{
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if ( netInfo.isConnectedOrConnecting())
{
Toast.makeText(this, "On",Toast.LENGTH_LONG).show();
Log.i("NewsList", "Internet Connection found.");
return true;
}
Toast.makeText(this, "Off",Toast.LENGTH_LONG).show();
return false;
}
1 ответ
Попробуйте следующее:
DetectConnection.class:
public class DetectConnection {
/*
* Checking internet connection
*/
public static boolean checkInternetConnection(Context context) {
ConnectivityManager con_manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (con_manager.getActiveNetworkInfo() != null
&& con_manager.getActiveNetworkInfo().isAvailable()
&& con_manager.getActiveNetworkInfo().isConnected()) {
return true;
} else {
return false;
}
}
}
Проверьте интернет из другого вида деятельности:
if (DetectConnection.checkInternetConnection(this)) {
//do something
}