Автовключение точки доступа при посадке в автомобиль
Мой вариант автоматизации включения точки доступа при подключении Android-смартфона посредством Bluetooth к магнитоле. Автомобилем пользуюсь не так часто, чтобы в него покупать отдельный USB-модем и ежемесячно платить за интернет. К тому же, на Android'е есть некоторые проблемы с получением интернета с RNDIS-устройств. Как пример, приложения Яндекса (навигатор, музыка, радио) не видят наличие доступа к интернету в системе, хотя если смотреть ifconfig или просто пинговать ресурс, интернет будет.
А вот при подключении штатно предусмотренным способом через Wi-Fi всё прекрасно работает.
Содержание страницы
Что потребуется?
- Android-смартфон;
- Программа Automate ( Automate 1.20.5 (8438 Загрузок ) ) для старого способа!;
- Программа MacroDroid для нового способа:
- актуальная версия:
MacroDroid Pro v5.19.9 (3777 Загрузок )
MacroDroid Helper v1.7 (2642 Загрузки ) - служебный сервис, на некоторых смартфонах без него не будет работать включение точки доступа.
- старая версия, под которую писалась инструкция:
MacroDroid Pro v4.9.6.1 (12130 Загрузок )
- актуальная версия:
- В некоторых случаях Root-права на смартфоне;
- Магнитола AllWinner T3 Wanqi или любая другая с функцией Wi-Fi клиента.
Новый способ (MacroDroid)
Устанавливаем программу на смартфон. Запускаем. Переходим в пункт Макросы:
Жмем плюсик в нижнем правом углу и создаем тем самым новый скрипт:
Сначала создадим макрос для включения точки доступа. Сверху задаем ему название, например Car WiFi On, в красном окошке Триггеры жмем плюсик. Здесь задаем условие для срабатывания нашего макроса. Нас интересует подключение к магнитоле по блютузу. Значит идем в категорию Связь и выбираем Состояние Bluetooth:
Выбираем условие Устройство подключено и выбираем магнитолу:
Теперь назначим действие при подключении к магнитоле. Нас интересует включение точки доступа. Для этого в синем окошке Действия жмем плюсик. В списке действий находим категорию Связь, в ней выбираем Точка доступа:
Выбираем пункт Включить точку доступа, галочки для начала не ставим. У меня на Android 9.0 всё работает без их включения, но если у вас хотспот не будет включаться, то попробуйе альтернативные способы:
Всё, макрос на включение готов. Выглядеть должен примерно так:
Сохраняем макрос и создаем второй. Теперь уже на выключение точки доступа по выходу из автомобиля.
Задаем ему название, добавляем новый тригер - Связь - Состояние Bluetooth - Устройство отключено - выбираем магнитолу:
Добавляем новое действие - Связь - Точка доступа - Выключить точку доступа:
Не забываем включить галочки на альтернативных способах, если без них не срабатывает.
Выходим в главное меню программы MacroDroid и отключаем оптимизацию приложении, выбрав первый пункт и согласившись во всплывающем окне:
Снова выходим в главное меню и активируем работу MacroDroid'а, включив ползунок в верхнем правом углу. Теперь идем в машину и включаем магнитолу, проверяем, что точка доступа включилась. Выключаем магнитолу, убеждаемся, что раздача интернета прекратилась. Под каждым макросом должна будет появиться строчка Последняя активация: хх минут назад, что свидетельствует о правильной работе.
Теперь смартфон автоматически будет раздавать интернет на магнитолу при посадке в автомобиль и так же выключать её при высадке, даже с выключенным экраном и включенным режимом экономии батареи.
Старый способ (Automate)
Алгоритм
Алгоритм действия прост:
- устанавливаем программу на смартфон;
- составляем в ней скрипт на включение точки доступа при подключении к магнитоле по блютузу;
- в настройках программы выставляем запуск всех запущенных скриптов после перезагрузки устройства;
- запускаем скрипт и забываем про программу;
- смартфон сам будет подключаться к Bluetooth магнитолы и тем самым активировать работу скрипта на включение точки доступа.
Реализация
Устанавливаем программу Automate. Запускаем. Сразу идем в настройки и ставим галочку напротив пункта Run on system startup:
Тем самым обеспечиваем постоянную работу нашего скрипта даже после перезагрузок устройства (важным условием в целом системы Android для автозапуска приложений является факт его (приложения) выполнения на момент перезагрузки, т.е. если программа была принудительно закрыта до перезапуска, запущена автоматически она не будет даже с установленной галочкой).
Далее скачиваем мой вариант скрипта: Скрипт автоматизации точки доступа (3789 Загрузок ) .
Или же создаем свой и срисовываем со скриншота:
Скачанный скрипт необходимо импортировать. Для этого в меню выбираем пункт Import, и в файловом проводнике находим скачанный файл с расширением .flo.
В списке на главном экране должен будет появиться скрипт Точка доступа в автомобиле. А при его открытии картина будет примерно следующая:
Единственным отличием будет отсутствие галочек на пунктах access local network, internet and nearby devices и tethering workaround. Соответственно, ставим их. Программа предложит установить дополнительные пакеты для расширения своих привелегий. Соглашаемся.
Хотел уже писать о запуске скрипта, но вспомнил, что в нем забит MAC-адрес блютуза моей магнитолы. Предварительно выполняем сопряжение магнитолы со смартфоном, если этого не было сделано и идем в редактор скрипта: иконка с карандашом - Flowchart:
На блок-схеме находим блок под номером 2 с иконкой блютуза и нажимаем по нему коротким тапом:
Жмем кнопку Pick device:
И в списке сопряженных блютуз-устройств выбираем магнитолу. Жмем Done. Затем галочку в верхнем правом углу от блок-схемы.
Вот теперь-то можно запускать скрипт. В логе начнут появляться сообщения, справа от названия скрипта появится единица, обозначающая количество одновременно работающих экземпляров и в шторке (трее) появится уведомление от Automate. Закрывать его крайне не рекомендуется, ибо система Android не гарантирует работоспособность программ в фоне, которые не заявляют о себе постоянным уведомлением в трее.
Как это выглядит в живую:
Разумеется, работать скрипт будет и в свернутом виде и тем более с выключенным экраном. В ролике программа открыта была лишь для демонстрации. В реальном кейсе эксплуатации телефон не достается из кармана и магнитола после полной загрузки сама подключается к точке доступа смартфона и начинает использовать его интернет.
Возможные проблемы
Точка доступа не отключается автоматически
Намеренно в скрипте отсутствует логика выключения точки доступа, т.к. не смог добиться стабильной её работы. Возможно, это особенность моего девайса, точно не знаю. Я проблему решил включением в системных настройках точки доступа фукнкцию автоматического отключения при отсутствии клиентов за последние 10 минут.
Точка доступа не включается скриптом, несмотря на сообщения в логе
В таком случае идем в настройки программы Automate и меняем способ управления точкой доступа в пункте Wi-Fi hotspot workaround:
В моем случае работает в режиме Extension (Android 5+) и абсолютно не работает на всех других. Возможно, у вас будет иначе. Для одного из пунктов необходимы Root-права о которых упоминалось в начале статьи:
Это гениально :) буду пробовать. Спасибо.
Да в целом это костыльное решение, стабильности которого вряд ли можно добиться. Но иной раз по запарке в машину залетаешь, не думая ни о каком включении точки доступа, а потом по ходу движения надо что-то на магнитоле включить/открыть. Смотришь, и она уже сама давно подключилась к вай-фаю телефона. Мелочь, но приятно :)
Пробовал Ваш вариант. Толком не заработал. Поставил automagic premium. Повозился с часок. Все отлично работает на Android 9.1.
Взял на вооружение программу. У меня нет магнитолы с wifi, но есть подключенный bt к штатной. Все раньше работало хорошо, автоматом приконнекчивалось. Но, купил умные часы и теперь телефон к бт автомобиля подключается только вручную (я так понял он уже считает часы гарнитурой и не рыпается искать что то ещё).
Благодаря automate и вашей статье - реализовал (вернул) автоподключение=) ну и мало того, добавил запуск программы через которую слушаю музыку в авто. Теперь вообще минимум действий надо предпринимать. Спасибо!
Спасибо, все отлично разъяснено. Небольшой вопрос: можно сократить время фукнкции автоматического отключения при отсутствии клиентов, с 10 мин. на другое ?
Александр, это делается в настройках самого телефона. У меня на Xiaomi это сделать можно довольно легко.
У меня магнитола при обнаружении точки доступа автоматом не подключает ее. Нужно заходить в настройки wifi, выбирать мою сеть, подключить. Но хочется автоматизировать, чтобы телефон автоматически включал точку доступа, и магнитола андроид подключалась к этой точке
Самсунг а51 андроид 10. В макродроде функция автоматического включения точки не работает. Может кто знает, как сделать
Попробуй добавить в скрипт отключение вай-фая перед включением точки доступа.
Спасибо Вам большое! Все заработало!
Клёво, все работает, спасибо разработчику!
Спасибо, всё чётко описано. Работает прекрасно! Включает точку доступа (wi fi) в машине при подключении по блютусу. Телефон samsung flip 4. Машина тойота корола 2020
Супер. Спасибо огромное!!!! Три дня ковыряюсь с всевозможными приложениями и не могла настроить включение точки доступа при перезагрузке и только эта статья помогла, нигде не писалось про сервисный файл helper. Спасибо огромное, скачала, установила и всё получилось.
Спасибо большое! Всё работает. Делал Новым способом.
Спасибо большое. Пару дней возился с Tasker для включения точки доступа при обнаружении ГУ в машине телефоном, так и не заработало. Здесь в течение 10 минут через MacroDroid все настроил. Автору респект.
спасибо за помощь, первый вариант сразу получился, очень нужная фишка с раздачей вай фая!!!