Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Bretbas
Каждому свое
521 / 207 / 81
Регистрация: 05.08.2013
Сообщений: 1,610
Завершенные тесты: 2
1

Перезагрузка интернет соединения по условию

04.02.2017, 17:15. Просмотров 549. Ответов 13
Метки нет (Все метки)

Доброго времени суток, Господа. У меня возникла проблема. Решил воспользоваться опытом программирования, чтобы ее решить.

Проблема заключается в том, что есть мобильный оператор Yota, который запрещает скачивать с торрента. Месяцев шесть назад, я начал пропускать ее трафик через прокси, вроде проблема решилась, скачка пошла. Но тут недели 2 назад, началась такая лажа - только начинаю качать трекер, как через минуты 5-10, может 20-30, меня yota блокирует, тоесть как-то вычисляет, что я подключен через wifi к компьютеру. Да, я забыл сказать, использовать yota в качестве модем соединения тоже нельзя, только если заплатишь. Я это лечу посредством изменения тетеринга.

Собственно как только она меня блокирует, сразу по всем запросам интернета редиректит на их сраный сайт, с предложением купить опцию - "Использование Yota в качестве модема". Лечится только перезагрузкой интернет соединения на телефоне.

Вот проблема, ее надо решить. Подумал, что нужно написать программу на Android, которая будет висеть в фоне, и постоянно проверять запрос на какой-нибудь сервер, ну скажем google, как только мы место google попадаем редиректом на yota, то перезагружаем интернет соединение телефона.

В принципе, если бы я писал на C++, это 4-5 строк кода Но для android никогда ничего не писал. Может подскажете в какую сторону двигаться, чтобы быстренько написать такую утилиту? Опыт в программирование имеется
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2017, 17:15
Ответы с готовыми решениями:

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

Проверка интернет соединения
Как же всё-таки прописать грамотную проверку интернет соединения? Необходимо...

Проверка наличия интернет соединения
Если в public void onStart() { super.onStart(); } ...

Как сделать лог интернет соединения Android приложения
Есть приложение и его исходники. Какие есть способы посмотреть что принимает и...

Скрипт для разрыва Интернет-соединения по условию
Здравствуйте! Помогите, плиз, в реализации следующей задумки. Нужен скрипт,...

13
vxg
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,002
04.02.2017, 19:46 2
Bretbas, если честно то непонятно что вы делаете - у меня самого Yota и лично прямо мне непонятно

Добавлено через 1 час 19 минут
Bretbas, кажется я понял - у вас что-то вроде тарифа "интернет для телефона" на котором нельзя раздавать, но вы это как-то умудряетесь делать, а провайдер иногда ловит вас и происходит это на торрентах?
0
Bretbas
Каждому свое
521 / 207 / 81
Регистрация: 05.08.2013
Сообщений: 1,610
Завершенные тесты: 2
04.02.2017, 20:07  [ТС] 3
vxg,
Цитата Сообщение от vxg Посмотреть сообщение
кажется я понял - у вас что-то вроде тарифа "интернет для телефона" на котором нельзя раздавать, но вы это как-то умудряетесь делать, а провайдер иногда ловит вас и происходит это на торрентах?
Ну можно так сказать
0
Bretbas
Каждому свое
521 / 207 / 81
Регистрация: 05.08.2013
Сообщений: 1,610
Завершенные тесты: 2
06.02.2017, 08:57  [ТС] 4
Ну и? Подскажите в какую сторону смотреть? Там кода пару, тройку строк, чтобы мне самому не рыться может подскажете?
0
vxg
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,002
06.02.2017, 09:25 5
Bretbas, к сожалению не передергивал подключение в своей практике. может что то вроде (украдено)
XML
1
2
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        // setup a wifi configuration
        WifiConfiguration wc = new WifiConfiguration();
        wc.SSID = ""YOUR_SSID"";
        wc.preSharedKey = ""YOUR_PASSWORD"";
        wc.status = WifiConfiguration.Status.ENABLED;
        wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
        wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
        wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
        wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
        wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
        wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
        // connect to and enable the connection
        int netId = wifiManager.addNetwork(wc);
        wifiManager.enableNetwork(netId, true);
        wifiManager.setWifiEnabled(true);
ну и перед этим естественно отваливать от точки, скорее всего через энаблед фэлс
0
Bretbas
Каждому свое
521 / 207 / 81
Регистрация: 05.08.2013
Сообщений: 1,610
Завершенные тесты: 2
06.02.2017, 10:13  [ТС] 6
vxg, не не не, насколько я понял, твой код отключает включает/отключает сеть wifi. Но мне не нужно ее отключать.

Мне нужно, чтобы на мобиле висела в фоновом режиме программа, которая через таймер проверяла соединение на какой-нибудь известный сервер, ну скажем google. И если при соединение с этим google мы попадаем не на google, а на страницу yota, с просьбой купить пакет и всякой хрени, то мы просто берем выключаем сеть 3g и включаем ее. Все

По идее нужна функция соединения к серверу, скорее всего принимающая параметры, такие как ip сервера и порт, и возвращающая результат соединения. После этого проверяем на какой ресурс мы попали, если на yota, то средствами API android(которые я не знаю) перезагружаем 3g. И это происходит по таймеру, который срабатывает, скажем через каждые 10 секунд
0
vxg
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,002
06.02.2017, 10:38 7
Bretbas, проверить страницу не проблема, а вот 3G я опять же не передергивал.
0
ExFau$t
634 / 534 / 122
Регистрация: 08.05.2012
Сообщений: 2,688
06.02.2017, 11:01 8
Bretbas, насколько я знаю (могу ошибаться), начиная где-то с 4.2, гугл пофиксили изменение настроек в обход пользователя, то есть для того, чтобы вкл/выкл авиарежим, нужно вывести окошечко для пользовательского пальчика.
Можно попробовать снести root и полазить по системным файликам, но мне недавно требовалось изменить яркость фонарика, так вот файлики там только на чтение. Много, конечно, зависит от ОС и модели телефона, до 4.2 вкл авиарежим можно без проблем.
1
Bretbas
Каждому свое
521 / 207 / 81
Регистрация: 05.08.2013
Сообщений: 1,610
Завершенные тесты: 2
06.02.2017, 12:21  [ТС] 9
ExFau$t, Да я не поверю, чтобы нельзя было программно передергивать 3g. Значит можно как-нибудь эмулировать нажатие этого пальчика.
0
vxg
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,002
06.02.2017, 14:13 10
Цитата Сообщение от Bretbas Посмотреть сообщение
Да я не поверю, чтобы нельзя было <подставляем любую фразу>
это вы не по адресу, это вам в другую ветку)
0
Bretbas
Каждому свое
521 / 207 / 81
Регистрация: 05.08.2013
Сообщений: 1,610
Завершенные тесты: 2
06.02.2017, 14:49  [ТС] 11
vxg, Короче я так понял, просто никто с этим не сталкивался и все, так?
Я проблему в принципе свою описал в первом посте, если все таки нельзя программным способом перезагружать 3g, что на мой взгляд, как-то странновато, то может есть вариант просто перезагружать смартфон программно? Условие то же самое - после того, как окажемся на сайте yota просто перезагружаем смарт и все. Впринципе это тоже подойдет
0
ExFau$t
634 / 534 / 122
Регистрация: 08.05.2012
Сообщений: 2,688
06.02.2017, 15:06 12
Для перезагрузки вроде есть ребут:
https://developer.android.com/refere...a.lang.String)
По поводу перенаправления, я чисто со страницами, не сталкивался, только с апи, так что я бы слушал ответы от гугла, а лучше всего какой-нибудь погодный сервер, который всегда отдаёт инфу в определённом виде, соответственно, нет инфы - перезагрузка. Ну или наоборот, если пришёл ответ от yota, я не знаю, что у них там. Каждые 10 сек делается просто в BroadcastReciever.

Добавлено через 3 минуты
Вот этот ещё класс посмотри InetAddress.
1
Bretbas
Каждому свое
521 / 207 / 81
Регистрация: 05.08.2013
Сообщений: 1,610
Завершенные тесты: 2
06.02.2017, 15:32  [ТС] 13
ExFau$t,
Цитата Сообщение от ExFau$t Посмотреть сообщение
а лучше всего какой-нибудь погодный сервер, который всегда отдаёт инфу в определённом виде, соответственно, нет инфы - перезагрузка
во во во, то что нужно. Теперь осталось только с Java подружиться, и быстренько написать, ибо не очень хочется долго сидеть над такой ерундой, а тем более с Java
0
LineAir
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 1
27.03.2017, 09:49 14
Bretbas, посмотрите еще в сторону Tasker. Это приложение для различной автоматизации в андроид. Думаю там можно по событию запустить, например, перезагрузку телефона.
0
27.03.2017, 09:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2017, 09:49

разрыв интернет соединения
Пользуюсь провайдером hitline vpn соединение.Когда скачиваю какие либо...

Настройка соединения с Интернет
Провайдер сообщил, что заменил оборудование, требуется новая настройка. Встреча...

скорость интернет соединения
такая проблемма скорость интернета через вайфай роутер тплинк841н в вин7 около...


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

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

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