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

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

Войти
Регистрация
Восстановить пароль
 
 
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,596
#1

Узнать какой интернет был отключен - Программирование Android

10.11.2016, 17:46. Просмотров 594. Ответов 31
Метки нет (Все метки)

Приветствую.
Есть проверка на включение инета:
Java
1
2
3
4
5
6
7
8
9
10
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null) {
            if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
                Log.e("-=><=-"," подключено к WiFi");
            } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
                Log.e("-=><=-", " подключено к мобильному интернету");
            }
        } else {
            Log.e("-=><=-", " нет подключения к интернету");
Все работает прекрасно. Но при отключении я получаю просто " нет подключения к интернету". Подскажите, можно ли как то узнать какой именно инет был выключен (мобильный или вайфай)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2016, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Узнать какой интернет был отключен (Программирование Android):

Как узнать откуда был вызван метод? - Программирование Android
У меня после распознавания речи вызывается метод onActivityResult(). В нём речь преобразуется в String. После этого в зависимости откуда...

Сделать так что бы размер кнопки неизменяемым, какой бы там текст не был - Программирование Android
Сделать так что бы размер кнопки неизменяемым, какой бы там текст не был

Как узнать, какой именно из установленных браузеров выбирает пользователь - Программирование Android
Здравствуйте. Подскажите, пожалуйста, как программно узнать, какой браузер выбирает пользователь. Например, один из тех, что приведены на...

Приложение выдает ошибку, если на устройстве отключен GPS - Программирование Android
Приложение определяет координаты, затем по координатам определяет город. Но, если на устройстве отключить GPS приложение вылетает. Как...

Узнать какой CheckBox был выбран - PHP
Утро доброе. Подскажите, как организовать, такую функцию, есть сотня CheckBox пользователь выделяет только несколько из них. Задача такова...

Нужно узнать какой input был нажат - JavaScript
значит вопрос такой: допустим,что у нас есть 10 &lt;input type=&quot;text&quot; name=&quot;...&quot; readonly&gt; Как можно при нажатии на один или другой узнать...

31
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 329
Завершенные тесты: 1
10.11.2016, 19:20 #2
Советую использовать переменную K ecли подключён через Wifi k=1
Если через мобайл данных то к=2 условию надо проверить по переменным.
0
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 1
10.11.2016, 20:11 #3
Цитата Сообщение от Khaker_tt Посмотреть сообщение
Советую использовать переменную K ecли подключён через Wifi k=1
Если через мобайл данных то к=2 условию надо проверить по переменным.
что за бред ты несешь?
0
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,596
10.11.2016, 21:08  [ТС] #4
и еще вопрос, при включении 3джи - все нормально, а при включении вайфая - дублируется 3 раза. говорили вроде что сначала просто включается, потом идет поиск станции и еще что то. подскажите, можно ли где то узнать как определить что бы сработка было только 1 раз?
0
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,596
13.11.2016, 21:08  [ТС] #5
Похоже так я и не дождусь ответов. все же попытаюсь задать еще один раз. Запускаю прогу, из которой стартует сервис:
В общем вот вырезки лога:
Код
E/ServiceMessage﹕ onCreate
E/ServiceMessage﹕ onStartCommand
потом идут странные ошибки, но они всегда появляются - не знаю что это
Код
E/linker﹕ load_library(linker.cpp:760): library "libmaliinstr.so" not found
E/﹕ appName=com.myprog.app, acAppName=com.android.cts.openglperf
E/﹕ 0
E/﹕ appName=com.myprog.app, acAppName=com.android.browser
E/﹕ 0
Далее работает сервис и отслеживает состояние инета:
Код
E/-=><=-﹕ 13 ноя 2016 20:31:57 нет подключения к интернету
включаю 3джи
Код
E/-=><=-﹕ 13 ноя 2016 20:32:20 подключено к мобильному интернету
включаю вайфай
Код
E/-=><=-﹕ 13 ноя 2016 20:32:31 подключено к WiFi
E/-=><=-﹕ 13 ноя 2016 20:32:34 подключено к WiFi
E/-=><=-﹕ 13 ноя 2016 20:32:34 подключено к WiFi
почему 3 раза?
Далее выключаю оба инета:
Код
E/-=><=-﹕ 13 ноя 2016 20:32:52 нет подключения к интернету
E/-=><=-﹕ 13 ноя 2016 20:32:52 нет подключения к интернету
и закрываю прогу. сервис остается работать, но происходит его создание заново - почему?
Код
E/ServiceMessage﹕ onCreate
E/ServiceMessage﹕ onStartCommand
E/-=><=-﹕ 13 ноя 2016 20:33:03 нет подключения к интернету
Подключаю вайфай:
Код
E/-=><=-﹕ 13 ноя 2016 20:33:19 подключено к WiFi
E/-=><=-﹕ 13 ноя 2016 20:33:32 подключено к WiFi
E/-=><=-﹕ 13 ноя 2016 20:33:32 подключено к WiFi
Запускаю прогу, что бы прибить сервис
Код
E/ServiceMessage﹕ onStartCommand
E/linker﹕ load_library(linker.cpp:760): library "libmaliinstr.so" not found
E/﹕ appName=com.myprog.app, acAppName=com.android.cts.openglperf
E/﹕ 0
E/﹕ appName=com.myprog.app, acAppName=com.android.browser
E/﹕ 0
прибиваю
Код
E/ServiceMessage﹕ onDestroy
Кто нибудь откликнется?
0
vxg
Модератор
3169 / 1972 / 221
Регистрация: 13.01.2012
Сообщений: 7,577
14.11.2016, 11:41 #6
pixel,
1 чем мешают три сообщения о включении инета?
2 по какой причине прилетает onStartCommand при выгрузке проги надо в коде проги смотреть - той информации что вы предоставили недостаточно
0
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,596
14.11.2016, 11:51  [ТС] #7
1. не мешает, хотелось бы понять какие именно события происходят в каждый из срабатываний. Какая там информация пролетает?
2. Смущает не onStart, а onCreate при выгрузке.
0
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 1
14.11.2016, 11:56 #8
если убить приложение - сервис пересоздаётся

если пересоздание сервиса все портит - значит код в сервисе написан неочень и надо подумать что переделать, что бы пересоздание сервиса не вызывало паники
0
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,596
14.11.2016, 11:58  [ТС] #9
Цитата Сообщение от Паблито Посмотреть сообщение
не вызывало паники
у меня или у системы? Если на систему это не влияет, то я переживу.
0
vxg
Модератор
3169 / 1972 / 221
Регистрация: 13.01.2012
Сообщений: 7,577
15.11.2016, 10:07 #10
pixel, три раза вызов идет потому что вы уже описали - возможно это события подключения, идентификации и получения адреса. с сервисом без кода вам никто ничего не присоветует
0
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,596
15.11.2016, 18:18  [ТС] #11
vxg, да не вопрос:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class SomeService extends Service {
 
    final String LOG_TAG = "ServiceMessage";
    BroadcastReceiver internetConnectionStateReceiver = new NetworkStateReceiver();
    IntentFilter internetConnectionStateIntent = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
 
    public void onCreate() {
        super.onCreate();
        Log.e(LOG_TAG, "onCreate");
        this.registerReceiver(internetConnectionStateReceiver, internetConnectionStateIntent);
    }
 
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.e(LOG_TAG, "onStartCommand");
        return super.onStartCommand(intent, flags, startId);
    }
 
    public void onDestroy() {
        super.onDestroy();
        unregisterReceiver(internetConnectionStateReceiver);
        Log.e(LOG_TAG, "onDestroy");
    }
 
    public IBinder onBind(Intent intent) {
        Log.e(LOG_TAG, "onBind");
        return null;
    }
}
0
vxg
Модератор
3169 / 1972 / 221
Регистрация: 13.01.2012
Сообщений: 7,577
15.11.2016, 18:30 #12
pixel, не надо из старта возвращать результат суперкласса, верните стики
0
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,596
15.11.2016, 18:32  [ТС] #13
vxg, извиняюсь, я новичек в этом, что за стики? если можно наглядный пример. (в принципе, код брал с инета - и от себя дописывал только в онкрит)
0
vxg
Модератор
3169 / 1972 / 221
Регистрация: 13.01.2012
Сообщений: 7,577
15.11.2016, 19:34 #14
pixel, onStartCommand должен вернуть START_STICKY - тогда система не будет его выгружать
0
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,596
16.11.2016, 16:07  [ТС] #15
спасибо, почитаю

Добавлено через 20 часов 4 минуты
vxg, поставил return START_STICKY; и ... ничего не изменилось, все то же самое как описано в логе выше.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2016, 16:07
Привет! Вот еще темы с ответами:

Как узнать какой submit был нажат? - C# ASP.NET
Привет! На моей форме несколько кнопок submit Как узнать name той, что была нажата. Заранее благодарна :)

Как узнать, на какой PictureBox был сделан клик? - C#
Здравствуйте, подскажите, пожалуйста, как узнать на какой pictureBox был сделан клик? pictureBox создаются динамически в двумерном...

Можно ли узнать, в какой программе был создан документ? - 1С
Доброго дня загружал документы через дбф подскажите можно ли как то узнать в какой программе было создано ? кроме префикса вначале кода...

Узнать какой Item был выбран пользователем и перенести LabelName - Delphi
Помогите пожалуйста, решит проблему...нужно узнать какой Item был выбран пользователем и перенести LabelName.Text выбранного Item в ...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
16.11.2016, 16:07
Ответ Создать тему
Опции темы

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