Информационное общество, именно его частью является современный человек, а в особенности человек, проживающий в развитых странах и крупных городах.
Смартфон стал обыденным инструментом, средством общения и развлечения. Но почему бы не заставить его делать что-то самостоятельно, зачем тратить собственное время на рутинные операции, которые могут быть легко автоматизированы. Например: включение и отключение звука, подключение к домашней Wi-Fi точке доступа, запуск навигационного приложения при установке смартфона в автомобильный держатель, и многое другое.
Оказывает сделать это совсем не просто, благодаря открытости операционной системы Android и наличию огромного количества публичных API, существует множество приложений, позволяющих автоматизировать работу смартфона. Среди столпов автоматизации под Android можно назвать два приложения:
- Tasker
- Automagic Automator
Первое, является собой подход программиста для программистов. Функциональность приложений улетела куда-то в стратосферу, я вообще не представляю себе, что можно такого придумать, чего нельзя сделать при помощи Tasker. Но при всем уважении, все же стоит думать о логике и последовательности применяемых решений в интерфейсе, когда продукт делается для конечного пользователя. В итоге, после нескольких месяцев использования, когда создание нового профиля превращалось в мучительные попытки вспомнить, как же это делалось в прошлый раз, Tasker был удален.
Возможные задачи и способы их решения
Среди задач, которые можно решать при помощи приложения, можно отметить:
- изменение настроек в зависимости от местоположения (отключать звук в период с 23:00 до 07:00 только при нахождении дома);
- пересылать все SMS сообщения на свой почтовый ящик;
- автоматически отвечать на определенные входящие SMS сообщения;
- включать и отключать Wi-Fi при выходе из дома и возвращении обратно;
- запускать определенное приложение при нахождении рядом с NFC меткой.
Как видите, спектр решаемых задач достаточно обширный, а я не перечислил и десятой части всех возможных условий срабатывания триггеров.
Для реализации подобных профилей автоматизации, введем базовые понятия, используемые в приложении.
Trigger (инициализирующее событие, триггер)
Условие, наступление которого инициализирует работу профиля и всех, указанных в нем действий.
Automagic Automator содержит более 90 разнообразных событий, среди которых:
- определение номера базовой станции, активно используется при геолокации, точность, достаточная для определения места, а потребление энергии намного ниже, чем при GPS позиционировании;
- входящие и исходящие звонки, позволит настроить звуковой профиль, либо автоматически включать запись разговоров;
- тип мобильной сети, например, если вы уехали в лес, и сеть 3g недоступна, то логично перевести телефон в режим GSM only, что позволит существенно сэкономить заряд аккумулятора;
- NFC метка, может быть закреплена на автомобильном держателе, при установке телефона в него, может быть автоматически включен Bluetooth, подключен к системе громкой связи автомобиля, а на самом телефоне будет запущен Car mode UI;
Таким образом, создание любого нового правила начинается с выбора соответствующего триггера. Как только вы определились с условием, вам предлагается выбрать действие, которое должно выполняться при его наступлении.
Action (действие)
Список возможных действий еще более обширен и включается в себя более 150 разнообразных вариантов, начиная ответа на входящий звонок и заканчивая публикациями в Twitter или загрузкой файлов в Dropbox.
Часто бывает так, что триггер сработал, но требуется уточнение его действия, например наступило необходимое время отключения звука, но вы еще не добрались домой, соответственно риска разбудить домочадцев нет, а вот возможность пропустить от них звонок становится реальной, поэтому вводим проверку условия.
Condition (условие)
Данный раздел позволяет делать ветвление в блок-схемах и включает в себя более 70 возможных состояний основного триггера.
Теперь, зная базовую терминология, приступим к примерам создания разнообразных профилей.
Бесшумный режим на ночь
Отключаем звук и вибрацию на входящие звонки и SMS в ночное время, при нахождении дома.
Создаем новое правило, для этого выбираем в контекстном меню New Flow
Добавляем триггер Periodic Location Update с интервалом проверки 5 минут. Отредактировать его можно нажав иконку карандаша на соответствующем элементе блок-схемы.
На данном экране есть ряд интересных параметров:
- 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) можно для очень грубого определения местоположения, точность в пределах города. Т.е. может быть полезно при выезде в соседний город и автоматической отправке СМС о том, что вы добрались.
Таким образом, мы собрали два блока определяющих время и место срабатывания правила. Теперь указываем системе, что необходимо отключить звук. Но просто отключив звук, мы получим ситуацию, в которой его возврат на предыдущие значения будет невозможен.
Поэтому логика отключения звука состоит из двух шагов:
- Сохранения текущих показаний системы в глобальные переменные.
- Отключение звука, посредством снижения необходимого значения до нуля.
Automagic Automator позволяет снижать отдельные уровни громкости в системе:
- Alarm — будильник;
- DTFM – тоновый сигнал в звонилке;
- Music — громкость музыки, тут же регулируется громкость в играх и других приложениях;
- Notification — уведомления;
- Ring — громкость звонка;
- System — системные звуки (клавиатура, нажатия на экран);
- Voice Call — уровень громкости во время разговора по телефону.
Чтобы исключить данную ситуацию, мы вводим дополнительное действие Store Audio Volumes, которое позволяет сохранить все системные громкости в виде отдельных глобальных переменных.
После того как эта операция проделана, вы можете добавлять следующее действие: Set Audio Stream Volume, где выбираете необходимый звук и выставляете для него необходимый уровень громкости. На рисунке выше это звук входящего вызова [Ring].
Для оптимизации потребления памяти, можно сохранять только те значения звука, которые подверглись изменению.
Обратите внимание, на рисунке выше присутствует действие, которое срабатывает, если условие оказывается неверным. Это действие Restore Audio Volumes, которое позволяет восстановить предыдущее значение громкости.
Возможные варианты использования данной возможности:
- отключение звука ночью;
- повышение громкости при подключении наушников;
Отключение/Включение Wi-Fi дома
Второй распространенный профиль использования, это отключение Wi-Fi при выходе из дома. Использоваться может как для экономии заряда аккумулятора, так и для успокоения внутреннего параноика, что телефон не подключится автоматически к какой-либо публичной сети и не начнет в фоновом режиме качать обновление для какого-либо приложения.
Общий принцип построения нового профиля мы рассмотрели, а вот некоторые нюансы работы в интерфейсе приложения лучше видно на видео.
Заключение
Приложение доступно для загрузки в Google Play, есть бесплатная версия, в которое установлено ограничение на количество профилей, так что её вполне достаточно, чтобы проверить на деле всю мощь.
К сожалению, в рамках статьи мы не рассмотрели множество дополнительных функций, тут и встроенный скриптовый язык программирования, и система логирования событий, позволяющая находить ошибки в схемах. Не затронули возможность создания виджетов, процесс очень похож на создание оных в UCCW.
Но главная цель, была в том, чтобы показать существование такого мощного приложения на Android, а уж как его использовать, подскажет фантазия.