Навигация для ленивых. Приложение Tasker с точки зрения автомобилиста

Думаю, многие активные пользователи смартфонов под управлением ОС Android знакомы с программой Tasker. Эта поистине уникальная программа позволяет автоматизировать выполнение целого ряда типовых задач, связанных с работой смартфона, от изменения громкости в определенное время до запуска программ при наступлении определенных событий. Круг задач, который может быть решен с использованием данного инструмента, действительно очень широк, поэтому я расскажу только об одном из вариантов применения Tasker: автоматическом запуске навигационной программы, когда телефон оказывается в машине.

В общем случае, процесс запуска навигации на смартфоне с точки зрения любого автомобилиста выглядит примерно следующим образом:

  1. Установить смартфон в кредл;
  2. Подключить зарядное устройство к телефону;
  3. Разблокировать телефон;
  4. Запустить программу навигации.

Конечно, здесь возможны варианты. Например, мне известно не менее трех вариантов исполнения кредлов:

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

Последний вариант обычно предполагает, что питание на зарядное устройство подается после включения зажигания. К слову, для своего Sony Xperia Z1 я использую последний вариант от компании Brodit, продукцию которой я оценил еще во времена владения HTC Desire.

Что касается других «околотелефонных» операций, таких как подключение зарядного устройство в гнездо прикуривателя или установка телефона в кредл, то я предлагаю их не рассматривать, так как ни одно приложение автоматизации не избавит вас от необходимости этого делать.

С помощью программы Tasker процесс запуска навигации на смартфоне можно минимизировать до следующего варианта:

  1. Установить смартфон в кредл;
  2. Подключить зарядное устройство к телефону.

Если же у вас кредл с зарядным устройством для скрытого монтажа, то процесс запуска можно свести вообще до одного единственного действия:

  1. Установить смартфон в кредл.

Я использую последний вариант (кредл с зарядным устройством для скрытого монтажа), или, как следует из названия заметки, вариант для самых ленивых…

Однако, здесь уместно сделать небольшую паузу и вспомнить о некоторых особенностях операционной системы Android. Дело в том, что для полноценной работы Tasker необходимы дополнительные права доступа, предоставить которые ему можно только если на телефоне разблокирован ROOT. Возможно, существуют варианты, когда можно обойтись без ROOT, но если вы используете графический ключ, пин-код или пароль, права ROOT иметь обязательно. Кроме этого, ROOT потребуется, если вы планируете выполнять ряд других операций, например, включать и выключать GPS. Процедура получения прав ROOT выходит далеко за пределы данной заметки, поэтому этот вопрос я оставляю на самостоятельное изучение.

Но перед тем как начать автоматизировать процесс запуска программы навигации с помощью приложения Tasker, нужно определится с условиями, при которых этот процесс (программа) будет запущена. Одно условие мы уже фактически нашли — это подключение зарядного устройства. Теперь нужно найти еще минимум одно, которое позволит отличать зарядное устройство, находящееся в автомобиле, от зарядного устройства, расположенного на работе или дома. Здесь есть несколько вариантов:

  • подключение к определенному устройству Bluetooth (модуль громкой связи);
  • отключение от определенного устройства Bluetooth (стерео BT гарнитура);
  • NFC метка;
  • подключение кабеля AUX в разъем для наушников;
  • другие события.

Я рассмотрю только тот вариант, который используется в моем случае, однако, ничто не мешает внести коррективы в логику работы Tasker, которые нужны именно вам и оптимизировать его работу. Кроме самого приложения Tasker, для полноценной работы потребуется две вспомогательные утилиты: Secure Settings и TaskKill Tasker Plugin (в настоящее время программа удалена с Google маркета). Обе программы для своей работы потребуют права ROOT.

После того как все необходимые программы установлены, приступаем к созданию автоматического запуска навигации. В моем примере будет использоваться программа CityGuide, но в данном случае это неважно, так как это может быть любая программа (или даже несколько программ), установленная в вашем смартфоне. Более того, с помощью Tasker можно создавать меню запуска или использовать автоматическое переключение с одной программы на другую при переходе телефона в роуминг или выходе за определенные географические координаты.

Для начала нужно создать ту самую задачу (Task), которая будет выполняться программой Tasker при наступлении определенных событий (Profile). Для этого необходимо определить тот набор рутинных операций, которые необходимо выполнять на телефоне, но для этого нужно определить исходное состояние, в котором находится телефон. В общем случае исходное состояние выглядит примерно так:

  1. Телефон находится в спящем режиме (экран выключен и погашен);
  2. Телефон заблокирован;
  3. GPS отключен;

Отсюда появляется набор минимальных обязательных действий, которые необходимо выполнить для того, чтобы запустить нужную программу автоматически:

  1. Включить GPS;
  2. Вывести телефон из спящего режима и включить экран;
  3. Разблокировать телефон (при этом неважно, какой тип блокировки используется: графический ключ, движение пальцем или пин-код);Запустить программу навигации.

Пора переходить от слов к делу. Запускаем Tasker и переходим в раздел Task и добавляем новую задачу. Для новой задачи нужно будет придумать какое-то имя, чтобы в дальнейшем можно было идентифицировать ее. Для примера, я создам задачу с именем Run Navigation и в дальнейшем буду ссылаться именно на это имя.

Создание новой задачи в Tasker
Создание новой задачи в Tasker

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

Список действий в новой задаче
Список действий в новой задаче

Учитывая, что список необходимых действий был определен ранее, все, что нам остается, — это перенести его в это окно. Принимая во внимание, что речь идет о навигации, первым действием я рекомендую добавить включение GPS. Естественно, если в вашем телефоне GPS активирован всегда, то этот пункт можно пропустить. Однако в моем телефоне GPS включается только тогда, когда это действительно необходимо и нужна точность в определении местоположения. Во всех остальных случаях он выключен и мне хватает точности определения по «вышкам» сотовой связи. Для того чтобы иметь возможность включить GPS, требуется плагин Secure Settings, который я упоминал ранее. Итак, жмем добавить действие и вызываем меню Категорий действий:

Категории действии. Раздел плагинов
Категории действии. Раздел плагинов

Здесь выбираем пункт Плагин, а затем Secure Settings:

Меню выбора плагинов в Tasker
Меню выбора плагинов в Tasker

После выбора плагина Secure Setting откроется стандартное окно редактирования действий.

Окно редактирования действия в программе Tasker
Окно редактирования действия в программе Tasker

Здесь необходимо указать конкретное действие, которое будет выполняться. Для того чтобы его указать, необходимо нажать на иконку с карандашом, после этого отобразится список возможных действий, которые предлагает выбранный нами плагин Secure Settings. Список действий достаточно большой, поэтому все действия сгруппированы по типам.

Группы действий, предлагаемые плагином Secure Settings
Группы действий, предлагаемые плагином Secure Settings

Нужное нам действие находится в разделе дополнительных операций System+ Actions.

Выбор типа действия для управления состоянием GPS
Выбор типа действия для управления состоянием GPS

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

  • включение;
  • выключение;
  • переключение.
Настройка автоматического включения GPS
Настройка автоматического включения GPS

Первые два варианта просто устанавливают указанное состояние. Вариант с переключением меняет текущее состояние на противоположное. Я рекомендую использовать явное указание нужного значения, кроме случаев, когда вы однозначно понимаете, зачем это нужно.

Первое действие добавлено, его пора сохранить (иконка дискеты) и вернуться к списку действий, в котором отобразятся только что сделанные изменения.

Список действий. Шаг первый
Список действий. Шаг первый

 Следующим шагом необходимо «разбудить» телефон и включить подсветку экрана. Так же как и в случае с GPS, делается это с помощью плагина Secure Settings. А нужное действие Wake находится в разделе Actions.

Действие Wake, позволяющее "будить" телефон и включать подсветку
Действие Wake, позволяющее «будить» телефон и включать подсветку

Очевидно, что действие по выводу телефона из спящего режима мало похоже на операцию по включению GPS, поэтому список доступных вариантов сильно отличается от того, что мы видели ранее.

Настройка режима пробуждения
Настройка режима пробуждения

Здесь нужно указать тип пробуждения и длительность. В нашем случае, необходимо выбрать включение экрана и ручной режим. Последнее означает, что экран не будет отключен автоматически через определенное время (по-умолчанию это 1 минута) и останется во включенном состоянии.

Сохраняем действие и возвращаемся.

Список действий. Шаг второй
Список действий. Шаг второй

Экран включен. Но его надо разблокировать. Поэтому добавляем третье действие, опять через список действий, предлагаемых плагином Secure Settings. Нужное нам действие называется Keyguard и доступно в группе Actions.

Действие Keyguard для разблокировки телефона
Действие Keyguard для разблокировки телефона

Действие очень похоже на рассмотренное ранее управление GPS: здесь так же доступно включение, выключение и переключение.

Настройка действия Keyguard
Настройка действия Keyguard

Чекбокс Run in background позволяет отключить уведомление о том, что Keyguard был отключен. Выбирайте сами, хотите вы его получать каждый раз, когда телефон будет автоматически разблокирован, или нет. У меня это уведомление отключено.

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

Список действий. Шаг третий
Список действий. Шаг третий

Сразу скажу, что выполнение следующего шага необязательно. Дело в том, что этот шаг касается включения автоматической смены ориентации изображения на экране. Признаюсь, это режим в повседневной эксплуатации телефона у меня всегда отключен. Однако кредл в машине позволяет легко повернуть телефон, поэтому в машине я его включаю. Для этого никаких плагинов не требуется, Tasker умеет решать подобную задачу самостоятельно, достаточно выбрать в меню действий раздел Экран.

Категории действий. Раздел Экран
Категории действий. Раздел Экран

 В появившемся окне выбираем соответствующий пункт: Поворот экрана.

Поворот экрана
Поворот экрана

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

Включение режима автоматического поворота экрана
Включение режима автоматического поворота экрана

Возвращаемся к списку действий, сохранение выполнится автоматически. Если по каким-то причинам нужно будет временно отключить это действие, то долгим нажатием на это действие можно будет вызвать меню, в котором нужно будет нажать на соответствующую кнопку. После отключения рядом с действием появляется фиолетовая полоса, которая указывает на то, что данное действие не выполняется.

Временное отключение действия
Временное отключение действия

Ну и, наконец, последний шаг: добавление действия для запуска программы навигации. Данная задача, как и предыдущая, решается исключительно самим приложением Tasker, для этого достаточно выбрать в Категории Действий пункт Приложения.

Категория действий. Раздел Приложения
Категория действий. Раздел Приложения

В появившемся окне нажимаем кнопку Запустить приложение:

Выбор приложения для запуска
Выбор приложения для запуска

В появившемся окне остается найти и выбрать нужное приложение, в данном случае это CityGuide. Вывод списка всех приложений может занимать чуть больше времени, чем вывод предыдущих меню.

Выбор приложения CityGuide для автозапуска
Выбор приложения CityGuide для автозапуска

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

Готовый список действия для автоматического запуска CityGuide
Готовый список действия для автоматического запуска CityGuide

Тем не менее, наша задача автоматического запуска работать пока не будет. Для того чтобы он начал работать, необходимо указать условия, при которых этот сценарий будет запущен. Эти условия задаются в разделе Profile. Так что самое время создать новый профиль, который будет запускать созданную ранее задачу Run Navigation. Поэтому переходим в соответствующий раздел и добавляем новый профиль.

Добавление нового профиля
Добавление нового профиля

После нажатия на соответствующую кнопку в появившемся меню нужно указать наше первое условие, а именно — телефон должен быт подключен к зарядному устройству. Сделать это можно, выбрав сначала пункт Состояние:

Меню Состояние
Меню Состояние

А затем пункты: Зарядка и еще раз Зарядка…

Меню выбора Категории
Меню выбора Категории
Меню состояния зарядного устройства
Меню состояния зарядного устройства

В появившемся окне указываем Любой тип. Другие варианты имеют смысл только для узкого круга владельцев фирменных зарядных устройств.

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

Возвращаемся в раздел Profile, где нам будет предложено связать только что созданный профиль с созданной ранее задачей; напоминаю, что мы создавали задачу с именем Run Navigation.

Привязка созданной ранее задачи к профилю
Привязка созданной ранее задачи к профилю

 Однако если профиль оставить в таком виде, то наша задача будет запускаться всегда, как только телефон окажется подключен к зарядному устройству. Поэтому нужно добавить еще одно условие. Именно оно будет определять, что телефон находится в машине, а не дома. Таких условий может быть несколько.

Добавление дополнительных условий автозапуска
Добавление дополнительных условий автозапуска

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

Выбор категории Сеть
Выбор категории Сеть

В появившемся окне выбрать пункт Подключено по Bluetooth:

Выбор состояния подключение Bluetooth
Выбор состояния подключение Bluetooth

Если в появившемся окне нажать на значок лупы:

Поиск сопряженных устройств
Поиск сопряженных устройств

То можно получить список всех имен, с которым сопряжен телефон. Найти нужное в списке не составит труда.

Выбор имени модуля Buetooth
Выбор имени модуля Buetooth

Возвращаемся в раздел Profile. Поздравляю. Настройка автоматического запуска программы CityGuide завершена. Если вы все сделали верно, то результат должен получится примерно таким, как показано на видео:

Остается только добавить задачу для завершения работы. В этом случае после выключения зажигания телефон будет автоматически завершать работу приложения и блокировать экран.

Порядок действий в целом повторяет пункты, перечисленные ранее:

  1. Создать задачу Stop Navigation, которая должна включать следующие действия:
    1. Выключить GPS (если необходимо);
    2. Отключить автоматический поворот экрана (если необходимо);
    3. Завершить работу приложения CityGuide;
    4. Включить Keyguard;
    5. Включить Lock Device.
  2. Добавить профиль, срабатывающий при отключении от зарядного устройства и том уникальном условии, которое вы выберите (например, отелючение от модуля Bluetooth), и связать его с задачей Stop Navigation.

Для того чтобы создать задачу Stop Navigation, кроме рассмотренных выше действий Secure Settings, отвечающих за GPS и автоматическую ориентацию экрана, нам потребуется два новых.

В частности, чтобы автоматически завершать работу приложения  CityGuide, нам потребуется плагин TaskKill Tasker Plugin. Я уже не буду подробно описывать, как выбирается этот плагин и где открывается окно с его настройками, так как эта процедура ничем не отличается от работы с Secure Settings. Отмечу только, что на устройствах с ОС Android 4.0+ я бы настоятельно рекомендовал прислушаться к мнению разработчика плагина и использовать для закрытия приложения метод Extreme.

Настройка действия завершения приложения CityGuide
Настройка действия завершения приложения CityGuide

Кроме этого, потребуется действие Lock, предлагаемое плагином Secure Settings, которое, собственно, будет блокировать телефон и выключать экран.

Настройка действия блокировки телефона
Настройка действия блокировки телефона

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

Задача завершения навигации
Задача завершения навигации

Собственно все, остается создать профиль и связать его с нашей задачей. В моем случае профиль для завершения работы выглядит так:

Профиль выключения навигации
Профиль выключения навигации

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

В итоге, подобный сценарий будет работать примерно следующим образом:

На этом все. Хотя нет, не все… Есть еще один полезный профиль, который возвращает экран навигационной программы в случае, если был совершен исходящий вызов с использованием Bluetooth (речь идет о профиле HandsFree, так как в случае Premium используется rSAP, в котором данный фикс лишен смысла). Выглядит этот профиль примерно так:

After Call Fix для профиля HandsFree
After Call Fix для профиля HandsFree

На этом действительно все. Надеюсь кому-то поможет…