Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
#1

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

10.11.2016, 17:46. Просмотров 664. Ответов 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):

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

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

Как узнать какой url формирует Retrofit
Здравствуйте. Пытаюсь получить данные с openweathermap. Вот код: ...

Можна ли узнать на какой платформе было написано приложение?
Могу ли я вычислить платформу написания приложения ERIM Ukraine 103?

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

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

31
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 330
Завершенные тесты: 1
10.11.2016, 19:20 #2
Советую использовать переменную K ecли подключён через Wifi k=1
Если через мобайл данных то к=2 условию надо проверить по переменным.
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
10.11.2016, 20:11 #3
Цитата Сообщение от Khaker_tt Посмотреть сообщение
Советую использовать переменную K ecли подключён через Wifi k=1
Если через мобайл данных то к=2 условию надо проверить по переменным.
что за бред ты несешь?
0
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
10.11.2016, 21:08  [ТС] #4
и еще вопрос, при включении 3джи - все нормально, а при включении вайфая - дублируется 3 раза. говорили вроде что сначала просто включается, потом идет поиск станции и еще что то. подскажите, можно ли где то узнать как определить что бы сработка было только 1 раз?
0
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
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
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
14.11.2016, 11:41 #6
pixel,
1 чем мешают три сообщения о включении инета?
2 по какой причине прилетает onStartCommand при выгрузке проги надо в коде проги смотреть - той информации что вы предоставили недостаточно
0
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
14.11.2016, 11:51  [ТС] #7
1. не мешает, хотелось бы понять какие именно события происходят в каждый из срабатываний. Какая там информация пролетает?
2. Смущает не onStart, а onCreate при выгрузке.
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
14.11.2016, 11:56 #8
если убить приложение - сервис пересоздаётся

если пересоздание сервиса все портит - значит код в сервисе написан неочень и надо подумать что переделать, что бы пересоздание сервиса не вызывало паники
0
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
14.11.2016, 11:58  [ТС] #9
Цитата Сообщение от Паблито Посмотреть сообщение
не вызывало паники
у меня или у системы? Если на систему это не влияет, то я переживу.
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
15.11.2016, 10:07 #10
pixel, три раза вызов идет потому что вы уже описали - возможно это события подключения, идентификации и получения адреса. с сервисом без кода вам никто ничего не присоветует
0
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
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
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
15.11.2016, 18:30 #12
pixel, не надо из старта возвращать результат суперкласса, верните стики
0
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
15.11.2016, 18:32  [ТС] #13
vxg, извиняюсь, я новичек в этом, что за стики? если можно наглядный пример. (в принципе, код брал с инета - и от себя дописывал только в онкрит)
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
15.11.2016, 19:34 #14
pixel, onStartCommand должен вернуть START_STICKY - тогда система не будет его выгружать
0
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
16.11.2016, 16:07  [ТС] #15
спасибо, почитаю

Добавлено через 20 часов 4 минуты
vxg, поставил return START_STICKY; и ... ничего не изменилось, все то же самое как описано в логе выше.
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
16.11.2016, 16:13 #16
pixel, ну значит остается предположить что ваше приложение само убивает сервис при закрытии
0
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
16.11.2016, 16:18  [ТС] #17
vxg, а как такое можно отследить?
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
16.11.2016, 16:23 #18
pixel, посмотреть в код вашего приложения)
0
pixel
18 / 11 / 4
Регистрация: 19.05.2009
Сообщений: 1,663
16.11.2016, 16:32  [ТС] #19
vxg, так у меня только пустое активити с кнопкой для убивания сервиса:
Java
1
2
3
4
5
6
7
8
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        startService(new Intent(this, SomeService.class));
}
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
16.11.2016, 16:35 #20
все еще остается загадкой, где же находится код, который приведет в первом сообщении в начале темы
0
16.11.2016, 16:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2016, 16:35
Привет! Вот еще темы с решениями:

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

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

Как узнать какой submit был нажат?
Привет! На моей форме несколько кнопок submit Как узнать name той, что была...

Как узнать, на какой PictureBox был сделан клик?
Здравствуйте, подскажите, пожалуйста, как узнать на какой pictureBox был...


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

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

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