#android
Хочу, чтобы при нажатии на кнопку выводилось сообщение о том, что нет подключения
к инету. Написал вот такой вот метод:
protected boolean isOnline() {
String cs = Context.CONNECTIVITY_SERVICE;
ConnectivityManager cm = (ConnectivityManager) getSystemService(cs);
if (cm.getActiveNetworkInfo() == null) {
return false;
} else {
return true;
}
}
Далее в акивити написал следующее:
if ( !isOnline ){
Toast.makeText(this, "No internet connection", Toast.LENGTH_LONG).show();
MyActivity.this.finish();
}
И почему-то все-равно при дебаге этот кусок проходит насквозь. В чем проблема?
Все нужные permissions в манифесте прописал.
Ответы
Ответ 1
Работает как часы: public static boolean hasConnection(final Context context) { ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (wifiInfo != null && wifiInfo.isConnected()) { return true; } wifiInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (wifiInfo != null && wifiInfo.isConnected()) { return true; } wifiInfo = cm.getActiveNetworkInfo(); if (wifiInfo != null && wifiInfo.isConnected()) { return true; } return false; }Ответ 2
Я пользуюсь вот таким методом, еще ни разу не подвел public static boolean isOnline(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null && netInfo.isConnectedOrConnecting()) { return true; } return false; }Ответ 3
Спасибо автору, все работает довольно хорошо, но есть нюанс protected boolean isOnline() { String cs = Context.CONNECTIVITY_SERVICE; ConnectivityManager cm = (ConnectivityManager) getSystemService(cs); if (cm.getActiveNetworkInfo() == null) { return false; } else { retrun true; } Только тут я немного подкорректировал: if ( !isOnline ){ Toast.makeText(this, "No internet connection", Toast.LENGTH_LONG).show(); MyActivity.this.finish(); } И получилось: if ( !isOnline() ){ Toast.makeText(getApplicationContext(), "Нет соединения с интернетом!",Toast.LENGTH_LONG).show(); return; } Если вставить в обработчик onClick то проверка работает хорошо.
Комментариев нет:
Отправить комментарий