Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Demon051
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 28
#1

Как определить, что пользователь разрешил доступ к сети - Android

31.05.2012, 15:53. Просмотров 958. Ответов 4
Метки нет (Все метки)

Всем привет!
Есть ли какое-то событие на которое можно подписаться, чтобы узнать, что доступ к сети разрешен или отключен в настройках устройства.

Понятно, что можно таймер запустить и постоянно дёргать через ConnectivityManager наличие подключения, но хотелось бы более аккуратно...
Какие есть варианты?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 15:53     Как определить, что пользователь разрешил доступ к сети
Посмотрите здесь:

Android Как узнать что выбрал пользователь в AutoCompleteTextView
Android Включение настроек программно. Местоположение определить по сотовой сети. Wi-Fi
Android Как получить доступ к тексту SMS?
Android Как получить доступ к сервису?
Android Как достать из textView, что что сейчас отображает ViePager
Как узнать, какой именно из установленных браузеров выбирает пользователь Android
Как наладить доступ из потомка к свойствам предка? Android
Как проверить, включил ли пользователь GPS? Android
Android Как получить доступ к root файлу
Как узнать когда пользователь перестает касаться экрана? Android
Как определить, что элемент RecyclerView пересекает при перемещении регион кнопки? Android
Android Как определить, платил ли пользователь хоть один раз?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
31.05.2012, 16:26     Как определить, что пользователь разрешил доступ к сети #2
Да есть.
Например наследуетесь от PhoneStateListener и переопределяете метод onDataConnectionStateChanged.

также ConnectivityManager рассылает действие CONNECTIVITY_ACTION ("android.net.conn.CONNECTIVITY_CHANGE"), когда изменяется состояние подключения. Вы можете зарегистрировать broadcast receiver для прослушивания изменений.
Demon051
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 28
31.05.2012, 16:39  [ТС]     Как определить, что пользователь разрешил доступ к сети #3
Спасибо!
И тогда ещё вопрос.

Я в курсе что для определения состояния GPS (вкл/выкл), нужно использовать GPSStatus.Listener
Но о не хочет работать без подписки через LocationManager на провайдер работы с ЖПС.
Т.е. если делаешь так:

LocationManager locMgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locListener);
locMgr.addGpsStatusListener(gpsStatListener);

то объект gpsStatListener работает - принимает изменения состояния GPS.

а если убрать вызов
locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locListener);

то извещения о изменении состояния ЖПС не приходят.
И не понятно почему....

Или что-то не так делаю.

Мне по объективным причинам постановки задачи нужно именно сначала узнать, что ЖПС включили, а уже потом подписаться на извещение о координатах.
Причём это не разовая проверка при старте, а именно постоянный контроль о сотоянии ЖПС - включили, подписался на изменения, отключили - отписался. И так по кругу

Может быть тоже есть какой-то способ другой, например возможность подписаться на некое системное сообщение типа того как с состоянием сетевого подключения?
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
02.06.2012, 16:42     Как определить, что пользователь разрешил доступ к сети #4
Java
1
2
3
4
5
6
7
8
9
10
private boolean checkInternetConnection() {
 
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        if ((cm.getActiveNetworkInfo() != null) && cm.getActiveNetworkInfo().isAvailable()
                && cm.getActiveNetworkInfo().isConnected()) {
            return true;
        }
        Toast.makeText(this, getString(R.string.text_toast_internet_error), Toast.LENGTH_SHORT).show();
        return false;
    }
Проверяем через иф так
Java
1
2
3
if (checkInternetConnection()) {
                    //делаем что надо так как возвращает тру
}
Demon051
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 28
04.06.2012, 09:18  [ТС]     Как определить, что пользователь разрешил доступ к сети #5
ОК!
Про сеть я понял, а про GPS, что скажете? (Вопрос в третьем посте в теме)
Yandex
Объявления
04.06.2012, 09:18     Как определить, что пользователь разрешил доступ к сети
Ответ Создать тему
Опции темы

Текущее время: 10:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru