Автовключение точки доступа при посадке в автомобиль

Мой вариант автоматизации включения точки доступа при подключении Android-смартфона посредством Bluetooth к магнитоле. Автомобилем пользуюсь не так часто, чтобы в него покупать отдельный USB-модем и ежемесячно платить за интернет. К тому же, на Android’е есть некоторые проблемы с получением интернета с RNDIS-устройств. Как пример, приложения Яндекса (навигатор, музыка, радио) не видят наличие доступа к интернету в системе, хотя если смотреть ifconfig или просто пинговать ресурс, интернет будет.

А вот при подключении штатно предусмотренным способом через Wi-Fi всё прекрасно работает. 

Что потребуется?

Новый способ (MacroDroid)

Устанавливаем программу на смартфон. Запускаем. Переходим в пункт Макросы:

Жмем плюсик в нижнем правом углу и создаем тем самым новый скрипт:

Сначала создадим макрос для включения точки доступа. Сверху задаем ему название, например Car WiFi On, в красном окошке Триггеры жмем плюсик. Здесь задаем условие для срабатывания нашего макроса. Нас интересует подключение к магнитоле по блютузу. Значит идем в категорию Связь и выбираем Состояние Bluetooth:

Выбираем условие Устройство подключено и выбираем магнитолу:

Теперь назначим действие при подключении к магнитоле. Нас интересует включение точки доступа. Для этого в синем окошке Действия жмем плюсик. В списке действий находим категорию Связь, в ней выбираем Точка доступа:

Выбираем пункт Включить точку доступа, галочки для начала не ставим. У меня на Android 9.0 всё работает без их включения, но если у вас хотспот не будет включаться, то попробуйе альтернативные способы:

Всё, макрос на включение готов. Выглядеть должен примерно так:

Сохраняем макрос и создаем второй. Теперь уже на выключение точки доступа по выходу из автомобиля. 

Задаем ему название, добавляем новый тригер - Связь - Состояние Bluetooth - Устройство отключено - выбираем магнитолу:

Добавляем новое действие - Связь - Точка доступа - Выключить точку доступа:

Не забываем включить галочки на альтернативных способах, если без них не срабатывает. 

Выходим в главное меню программы MacroDroid и отключаем оптимизацию приложении, выбрав первый пункт и согласившись во всплывающем окне:

Снова выходим в главное меню и активируем работу MacroDroid’а, включив ползунок в верхнем правом углу. Теперь идем в машину и включаем магнитолу, проверяем, что точка доступа включилась. Выключаем магнитолу, убеждаемся, что раздача интернета прекратилась. Под каждым макросом должна будет появиться строчка Последняя активация: хх минут назад, что свидетельствует о правильной работе.

Теперь смартфон автоматически будет раздавать интернет на магнитолу при посадке в автомобиль и так же выключать её при высадке, даже с выключенным экраном и включенным режимом экономии батареи.

Старый способ (Automate)

Алгоритм

Алгоритм действия прост:

  • устанавливаем программу на смартфон;
  • составляем в ней скрипт на включение точки доступа при подключении к магнитоле по блютузу;
  • в настройках программы выставляем запуск всех запущенных скриптов после перезагрузки устройства;
  • запускаем скрипт и забываем про программу;
  • смартфон сам будет подключаться к Bluetooth магнитолы и тем самым активировать работу скрипта на включение точки доступа.

Реализация

Устанавливаем программу Automate. Запускаем. Сразу идем в настройки и ставим галочку напротив пункта Run on system startup:

Тем самым обеспечиваем постоянную работу нашего скрипта даже после перезагрузок устройства (важным условием в целом системы Android для автозапуска приложений является факт его (приложения) выполнения на момент перезагрузки, т.е. если программа была принудительно закрыта до перезапуска, запущена автоматически она не будет даже с установленной галочкой).

Далее скачиваем мой вариант скрипта:  Скрипт автоматизации точки доступа (890 Загрузок) .

Или же создаем свой и срисовываем со скриншота:

Скачанный скрипт необходимо импортировать. Для этого в меню выбираем пункт 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-права о которых упоминалось в начале статьи:

8 ответов к «Автовключение точки доступа при посадке в автомобиль»

    1. Да в целом это костыльное решение, стабильности которого вряд ли можно добиться. Но иной раз по запарке в машину залетаешь, не думая ни о каком включении точки доступа, а потом по ходу движения надо что-то на магнитоле включить/открыть. Смотришь, и она уже сама давно подключилась к вай-фаю телефона. Мелочь, но приятно 🙂

  1. Пробовал Ваш вариант. Толком не заработал. Поставил automagic premium. Повозился с часок. Все отлично работает на Android 9.1.

  2. Взял на вооружение программу. У меня нет магнитолы с wifi, но есть подключенный bt к штатной. Все раньше работало хорошо, автоматом приконнекчивалось. Но, купил умные часы и теперь телефон к бт автомобиля подключается только вручную (я так понял он уже считает часы гарнитурой и не рыпается искать что то ещё).
    Благодаря automate и вашей статье — реализовал (вернул) автоподключение=) ну и мало того, добавил запуск программы через которую слушаю музыку в авто. Теперь вообще минимум действий надо предпринимать. Спасибо!

  3. Спасибо, все отлично разъяснено. Небольшой вопрос: можно сократить время фукнкции автоматического отключения при отсутствии клиентов, с 10 мин. на другое ?

    1. Александр, это делается в настройках самого телефона. У меня на Xiaomi это сделать можно довольно легко.

  4. У меня магнитола при обнаружении точки доступа автоматом не подключает ее. Нужно заходить в настройки wifi, выбирать мою сеть, подключить. Но хочется автоматизировать, чтобы телефон автоматически включал точку доступа, и магнитола андроид подключалась к этой точке

  5. Самсунг а51 андроид 10. В макродроде функция автоматического включения точки не работает. Может кто знает, как сделать

Добавить комментарий

Ваш адрес email не будет опубликован.