Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

Как узнать что выбрал пользователь в AutoCompleteTextView - Программирование Android
Доброго времени суток. Как узнать какую подсказку выбрал пользователь из AutoCompleteTextView ? И как сделать чтоб например если выбрал...

Как понять, что пользователь закончил ввод текста в поле? - Программирование Android
стоит задача сделать примерно такой функционал: пользователь вводит с клавиатуры телефона какой-то текст, и есть пользователь на какое-то...

Как определить, платил ли пользователь хоть один раз? - Программирование Android
Как можно получить true или false, платил ли юзер хоть раз со своего аккаунта в мое приложение?

Как в Android Studio сделать так, что пользователь вводил функцию f(x)=? и точку? - Программирование Android
А она считала значение в этой точке

Как определить, что пользователь уходит с сайта? - PHP
Для облегчения работы сервера я хочу, чтоб при заходе каждого пользователя на сайт созданное соединение с БД и сохранялось в переменной...

как создать хостинг внутри сети, но так что б к нему был доступ из интернета - Apache, htaccess
доброе время суток. хочу попробовать реализовать такой сценарий - допустим я нахожусь в локальной сети и я хочу создать внутри этой...

4
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
31.05.2012, 16:26 #2
Да есть.
Например наследуетесь от PhoneStateListener и переопределяете метод onDataConnectionStateChanged.

также ConnectivityManager рассылает действие CONNECTIVITY_ACTION ("android.net.conn.CONNECTIVITY_CHANGE"), когда изменяется состояние подключения. Вы можете зарегистрировать broadcast receiver для прослушивания изменений.
0
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);

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

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

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

Может быть тоже есть какой-то способ другой, например возможность подписаться на некое системное сообщение типа того как с состоянием сетевого подключения?
0
dajver
410 / 274 / 18
Регистрация: 18.09.2010
Сообщений: 1,112
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()) {
                    //делаем что надо так как возвращает тру
}
0
Demon051
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 28
04.06.2012, 09:18  [ТС] #5
ОК!
Про сеть я понял, а про GPS, что скажете? (Вопрос в третьем посте в теме)
0
04.06.2012, 09:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2012, 09:18
Привет! Вот еще темы с ответами:

Как определить, что пользователь ничего не выбрал в OpenFileDialog - C#
Открываю диалог для загрузки фото, все работает и загружает, но есть одна проблема. Если не выбрать изображение, а просто закрыть диалог то...

Как определить что пользователь нажал на сообщение (ShowBalloonTip) ? - Visual Basic .NET
Как определить что пользователь нажал на сообщение (ShowBalloonTip) ? Пример сообщения : NotifyIcon1.ShowBalloonTip(5000,...

Как определить, что пользователь ничего не ввел в поле? - Pascal ABC
Доброго времени суток! Задание такое: "дан файл, содержащий сведения об учениках школ: указывается фамилия, имя, отчество, адрес, класс,...

Определить, с какого устройства пользователь в сети - PHP
Всем привет, меня интересует такой вопрос: Как узнать с какого устройства пользователь зашёл на мой сайт, с сотового или компьютера?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.