aa_promo

Автоматизируй это

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

Смартфон стал обыденным инструментом, средством общения и развлечения. Но почему бы не заставить его делать что-то самостоятельно, зачем тратить собственное время на рутинные операции, которые могут быть легко автоматизированы. Например: включение и отключение звука, подключение к домашней Wi-Fi точке доступа, запуск навигационного приложения при установке смартфона в автомобильный держатель, и многое другое.

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

  • Tasker
  • Automagic Automator

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

Начался мучительный поиск альтернативных решений, среди которых был обнаружен, на тот момент, совсем молодой конкурент в лице Automagic Automator. Буквально через 10 минут изучения программы, я был поражен, насколько же простым и наглядным можно сделать процесс профилирования. Вместо строчной структуры описания алгоритма, разработчики из Gridvision Engineering GmbH вернулись к классике: использовали блок-схемы, да-да, именно те, что мы все рисовали в школе на уроках информатики.

Знакомые со школы, прямоугольники действий, ромбы условий и стрелки позволяющие создавать циклы.

Возможные задачи и способы их решения

Среди задач, которые можно решать при помощи приложения, можно отметить:

  • изменение настроек в зависимости от местоположения (отключать звук в период с 23:00 до 07:00 только при нахождении дома);
  • пересылать все SMS сообщения на свой почтовый ящик;
  • автоматически отвечать на определенные входящие SMS сообщения;
  • включать и отключать Wi-Fi при выходе из дома и возвращении обратно;
  • запускать определенное приложение при нахождении рядом с NFC меткой.

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

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

Trigger (инициализирующее событие, триггер)

Условие, наступление которого инициализирует работу профиля и всех, указанных в нем действий.

Полный список триггеров в Automagic Premium

Полный список триггеров в Automagic Premium

Automagic Automator содержит более 90 разнообразных событий, среди которых:

  • определение номера базовой станции, активно используется при геолокации, точность, достаточная для определения места, а потребление энергии намного ниже, чем при GPS позиционировании;
  • входящие и исходящие звонки, позволит настроить звуковой профиль, либо автоматически включать запись разговоров;
  • тип мобильной сети, например, если вы уехали в лес, и сеть 3g недоступна, то логично перевести телефон в режим GSM only, что позволит существенно сэкономить заряд аккумулятора;
  • NFC метка, может быть закреплена на автомобильном держателе, при установке телефона в него, может быть автоматически включен Bluetooth, подключен к системе громкой связи автомобиля, а на самом телефоне будет запущен Car mode UI;
Car dashboard для Android

Автомобильный режим в приложении Car Dashboard

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

Action (действие)

Список возможных действий еще более обширен и включается в себя более 150 разнообразных вариантов, начиная ответа на входящий звонок и заканчивая публикациями в Twitter или загрузкой файлов в Dropbox.

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

Condition (условие)

Данный раздел позволяет делать ветвление в блок-схемах и включает в себя более 70 возможных состояний основного триггера.

Вариант выбора действия или дополнительного условия в Automagic Premium

Вариант выбора действия или дополнительного условия в Automagic Premium

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

Бесшумный режим на ночь

Отключаем звук и вибрацию на входящие звонки и SMS в ночное время, при нахождении дома.

Создаем новое правило, для этого выбираем в контекстном меню New Flow

Создание нового правила в Automagic Premium

Создание нового правила в Automagic Premium

Добавляем триггер Periodic Location Update с интервалом проверки 5 минут. Отредактировать его можно нажав иконку карандаша на соответствующем элементе блок-схемы.

Тонкая настройка условия Periodic location Update

Тонкая настройка условия Periodic location Update

На данном экране есть ряд интересных параметров:

  • NAME — позволяет задать триггеру отдельное имя, чтобы переиспользовать его в дальнейшем;
  • LOCATION PROVIDER – позволяет выбрать какой тип геолокационных данных использовать: GPS, сотовая связь, Wi-Fi точки доступа. Рекомендую использовать сотовую связь, как наиболее эффективную с точки зрения энергопотребления.
  • FREQUENCY – частота опроса, выставляйте по собственному усмотрению, как правило, 5–10 минут является оптимальным;
  • LIMIT TIME RANGE – а вот это очень полезное свойство, позволяющее задать интервал проверки местоположения только в указанное время, что автоматически снижает количество запросов, а как следствие продлевает жизнь смартфона от одной зарядки.

Именно в последнем пункте мы определяем, что правило должно срабатывать в интервале с 23:00 до 07:00.

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

  • телефон у меня формата GSM, т.е. если Вы житель РФ и у вас не Скайлинк, то выбирайте аналогичный пункт, в 3g сетях тоже будет правильно работать;
  • на предыдущем шаге мы выбрали тип определения местоположения на основании сотовой сети.
Настройка условия определения местоположения по базовым станциям

Настройка условия определения местоположения по базовым станциям

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

В качестве точки определения выбираем Cell ID (CID) List, это позволит собрать сектора базовых станций, которые находятся в пределах вашего дома. Сбор начинает после нажатия кнопки Start, как правило, полный список БС получится собрать через пару недель. Все это время, вы будете периодически видеть отключение профиля, когда попадете в такую ситуацию, просто войдите в настройки данного условия и запустите процедуру сбора данных повторно.

Использовать Location Area Code (LAC) можно для очень грубого определения местоположения, точность в пределах города. Т.е. может быть полезно при выезде в соседний город и автоматической отправке СМС о том, что вы добрались.

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

Поэтому логика отключения звука состоит из двух шагов:

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

Automagic Automator позволяет снижать отдельные уровни громкости в системе:

  • Alarm — будильник;
  • DTFM – тоновый сигнал в звонилке;
  • Music — громкость музыки, тут же регулируется громкость в играх и других приложениях;
  • Notification — уведомления;
  • Ring — громкость звонка;
  • System — системные звуки (клавиатура, нажатия на экран);
  • Voice Call — уровень громкости во время разговора по телефону.
Общий вид созданного правила в Automagic Premium

Общий вид созданного правила в Automagic Premium

Чтобы исключить данную ситуацию, мы вводим дополнительное действие Store Audio Volumes, которое позволяет сохранить все системные громкости в виде отдельных глобальных переменных.

После того как эта операция проделана, вы можете добавлять следующее действие: Set Audio Stream Volume, где выбираете необходимый звук и выставляете для него необходимый уровень громкости. На рисунке выше это звук входящего вызова [Ring].

Экран действия управления звуком в Automagic Premium

Экран действия управления звуком в Automagic Premium

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

Обратите внимание, на рисунке выше присутствует действие, которое срабатывает, если условие оказывается неверным. Это действие Restore Audio Volumes, которое позволяет восстановить предыдущее значение громкости.

Возможные варианты использования данной возможности:

  • отключение звука ночью;
  • повышение громкости при подключении наушников;

Отключение/Включение Wi-Fi дома

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

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

Заключение

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

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

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