#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 то проверка работает хорошо.
Комментариев нет:
Отправить комментарий