Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
pixel
19 / 12 / 4
Регистрация: 19.05.2009
Сообщений: 1,704
1

Узнать какой интернет был отключен

10.11.2016, 17:46. Просмотров 691. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

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

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

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

Добавлено через 20 часов 4 минуты
vxg, поставил return START_STICKY; и ... ничего не изменилось, все то же самое как описано в логе выше.
0
vxg
Модератор
3278 / 2075 / 327
Регистрация: 13.01.2012
Сообщений: 8,055
16.11.2016, 16:13 16
pixel, ну значит остается предположить что ваше приложение само убивает сервис при закрытии
0
pixel
19 / 12 / 4
Регистрация: 19.05.2009
Сообщений: 1,704
16.11.2016, 16:18  [ТС] 17
vxg, а как такое можно отследить?
0
vxg
Модератор
3278 / 2075 / 327
Регистрация: 13.01.2012
Сообщений: 8,055
16.11.2016, 16:23 18
pixel, посмотреть в код вашего приложения)
0
pixel
19 / 12 / 4
Регистрация: 19.05.2009
Сообщений: 1,704
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
2811 / 2235 / 754
Регистрация: 12.05.2014
Сообщений: 7,821
Завершенные тесты: 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

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

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

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


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

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

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