- Android-приложение MacroDroid, версия: 3.9.17, цена: бесплатно, полная редакция - 2,5 евро
Лет, наверное, пять назад мне понадобилось, чтоб телефон в определенных местах сам снижал громкость до 30%. Именно тогда я связался с Tasker'ом. Спустя пару месяцев я осознал, что это ни разу не программа и уж, тем более, не средство оптимизации - самое емкое определение, что я услышал, - "проблемно-ориентированный язык". Да, сделать можно почти все, но при этом мозг может не просто закипеть, а еще и вытечь... По крайней мере, мне тогда так казалось. Еще спустя пару месяцев, когда старенькая Sony Sola уже автоматически начала формирование Скайнета, я Таскер удалил - "во избежание", так сказать... я с детства считаю восстание машин не научной фантастикой, а реальной угрозой.
И вот сейчас я вновь связался с этими всеми автоматизациями на телефоне. Связался не просто так, а с конкретной целью: браслет Honor Band 3 в работе с уведомлениями несколько ограничен, а благодаря программке удалось заставить его не просто принимать нужные мне сообщения, но и прогноз погоды выводить. А дальше была простая мысль: если программа стоит, то почему бы ей не делать что-то еще... И тут понеслось.
Итак, MacroDroid.
Как и любой аналог (а их хватает - мне просто этот под руку попался в свое время), изначально поставляется в бесплатной редакции с возможностью покупки. Отличается бесплатная версия ограничением на количество правил (максимум - пять) да наличием рекламы. Как по мне - лучше купить сразу (цена - 200 р. приблизительно). Ну да начнем...
Говорить о триггерах, макросах, активитях и прочей лабуде не будем - скушно, грустно и уныло - кому нужно, и так знает. Ограничимся лишь пониманием: триггер - "когда", действие - "что", ограничение - "где" (условно говоря). А под словом макрос здесь понимается именно наш алгоритм (правило, если хотите, - тут уж каждый разработчик изощряется в названии одних и тех же вещей).
Так вот, для выполнения простых вещей ни о каких настройках даже знать не нужно - все интуитивно понятно. Простой пример - отключение экрана при взмахе телефоном. Так, у нас банальное условие из списка - "Тряска", и банальное действие - "Отключение экрана". Для таких вещей нам даже рут-доступ не нужен.
Собственно, вместо взмаха может быть что угодно: нажатие наэкранной кнопки, активация виджетом, набор конкретного номера телефона... не важно.
Можно наоборот, "тряску" оставить, а повесить не выключение экрана, а включение фонарика (только выбрать лучше не включение фонарика, а переключение состояния - иначе как отключать-то будем?), таким вот простым ходом добавим обычному телефону фирменную штуку Моторол.
Или другой пример: при сопряжении с блутуз-колонкой, запускаем плеер и начинаем играть музыку, а при выключении колонки, наоборот, программу выключаем, а блутуз отключаем - тоже элементарные вещи, не требующие какой-либо фантазии. Только понадобится два макроса: один на подключение устройства, второй - на его отключение.
Но для превращения телефона в нечто с названием "смарт", нужно-таки убедиться в нескольких вещах в настройках. Собственно, все они связаны с фоновой работой. Так, в первую очередь, нас интересует работа в фоновом режиме.
А во вторую - отключение энергосберегающих функций телефона для программы, исключения Doze и прочие аналогичные штуки. Как правило, находится это по пути "Настройки телефона" - "Батарея" - "Энергосбережение".
Либо в "Менеджере телефона", если говорим о китайских брендах да Самсунгах.
Вообще, в настройках программы можно покопаться подробнее - здесь настраивается собственная электронная почта (зачем - далее), частота опроса датчиков, мобильных сетей, и прочего. Логика проста: чем чаще опрос - тем сильнее садится батарея (хотя никакого существенного увеличения потребления батареи не замечено).
Но вернемся к программе и ее возможностям...
Предлагаю вспомнить (себе), с чего все началось... Так вот, МакроДроид умеет считывать любые уведомления любых приложений, создавать свои с любым текстом, и очищать это все. Казалось бы - ничего важного. Но если это в нужное русло...
К примеру, программа снимает показания батареи и при достижении определенного параметра (абсолютно любого - которое нравится нам, а не системе с ее фиксированными показателями "низкого заряда"), на полсекунды (буквально, на наш выбор время задаем) выводит уведомление и тут же его удаляет.
По факту пользователь даже не замечает активности, но приложение браслета фиксирует получение уведомления и выводит эту информацию.
Вместо браслета можно задать иные действия: уведомлять о разряде каждые 10%, или при достижении 30% разряда - снижать яркость и отключать Вай-Фаи и ЖПСы. Примечательно, что МакроДроид в состоянии понять, 30% достигнуты в результате разряда или заряда - т.е. батарея разряжается или, наоборот, заряжается, а это, как понимаем, открывает новые возможности.
Кстати, о браслете и прочих носимых устройствах. Очень часто смартфоны Сяоми блокируют доступ к уведомлениям СМС и прочих мессенджеров, иногда это обходится просто, иногда - сложно, но одним из способов является как раз перехват этих событий именно МакроДроидом.
Думаю, немного можно отвлечься - посмотрим картинки с разными событиями и действиями (просто так, чтоб немножко понимать - по факту этого добра намного больше).
Обратили внимание на наличие условий времени и "восхода/заката"? А никогда не задумывались, как автоматизировать включение затемнения экрана ночью? А тихий режим включать в то же время? А все в одном если? А индикатор уведомлений не раздражает ночью миганием? Если мысли посещали, то решить их все одним махом можно минуты за полторы...
Конечно, есть специализированные решения, но они зачастую платно-рекламные, да и зачем плодить лишние программки. При этом, можем даже конкретные дни задать (мне на выходных такое не нужно - там ночь наступает слишком непредсказуемо).
Вообще, мне программа нужна в первую очередь для блокировки экрана (ну не нравится кнопкой блокировать). Вот и настроено несколько сценариев.
Я кладу телефон между подлокотником дивана и его подушкой. Вот настроил: если телефон именно на правом или левом боку (и никак иначе) и датчик приближения близко - экран блокируется.
Или вот просто повернув телефон экраном вниз, мы так же его блокируем. Но как быть, если мы пользуемся экраном как фонариком? Отказаться от функции? Можно и отказаться... а можно добавить ограничивающий фактор в виде показаний датчика освещенности: ноль и близкие значения - значит темно.
Просто же: если освещение отсутствует - блокировать не нужно. Ограничения, кстати, работают с привычными логическими операторами.
Моя личная гордость - сбыча давней мечты - управление взмахами! Вот лежит телефон на столе, а я такой над ним рукой взмахнул, а экран зажегся! Время глянуть, уведомления проверить...
А потом еще раз взмахнул - а он погас! Ну шаманство же, а! А самое интересное - ложных срабатываний - ноль, а экран загорается, благодаря корректно подобранным ограничивающим факторам, только когда телефон лежит горизонтально экраном вверх.
Можно пойти дальше, и к тем же условиям добавить входящий вызов... Уже понятно, да? Несколько лет назад было несколько раскрученных программ таких - автоматическое включение громкой связи по взмаху. Так и здесь: рукой взмахнули, если телефон на столе во время вызова - автоответ плюс громкая связь, взмахнули еще раз - отклонение вызова.
Во время еды, между прочим, удобно... Да и вообще, если руки заняты, а поговорить нужно (ну и посторонних если не видать).
Здесь вот что важно - задать правильное ограничение - телефон должен при одном и том же базовом условии (быстрое движение над датчиком приближения) в разных вводных данных выполнять разные действия. Так, если телефон не звонит и экран не включен - то включится экран; если экран включен - наоборот, выключится. Если же телефон и лежит и звонит - тогда ответ и громкая связь, а если и лежит, и вызов и громкая связь уже включена - тогда отбой вызова. Словом, - правильно заданный вопрос - наполовину полученный ответ (как-то так).
А вот вопрос: никогда не видели фирменную фишку Ифонов? Мигание вспышкой во время звонка которая. Так вот, для этого никаких сторонних программ (есть и такие, ProfReminder тому пример) не требуется: условие - банальный входящий звонок, а вот с действием придется подумать... Подумать придется не много - достаточно вспомнить из базовой информатики понятие "цикл" и его использовать, а в теле цикла прописать задержку и фонарик. Как вы уже, наверное, догадались, задержка и длительность горения вспышки может быть любая - может мигать как стробоскоп, а может и раз в пару секунд.
А что будет, если вместо "Входящего" вызова использовать "Пропущенный вызов"? Да - то самое использование вспышки в качестве индикатора уведомлений (если таковой отсутствует в телефоне или просто не нравится).
А вот еще штука для наивных параноиков - антивор. Сразу говорю: сценарий наивен до жути, и может применяться исключительно как показатель возможностей.
Так вот, предположим плохое - телефон спионерили. Мы тут же отправляем СМС с заданным текстом, в моем примере "GPS". Чтобы исключить шутки и розыгрыши - задаем конкретный номер, который будет выступать активатором.
В ответ программа на заданную электронную почту (можно СМС или еще каким способом) отправляет свои координаты и время их фиксации (мало ли - вдруг последний GPS-сеанс был час назад), после начинает играть песню "Все пройдет" группы "Вирус" (играет собственными средствами, нигде нет никакой возможности ее отключить, вообще никакой!) на максимальную громкость. И запускается таймер в 5 секунд... В этот момент, злоумышленник в панике достает телефон и смотрит на него с целью отключить эту "пестню", и тут, эти самые пять секунд истекают и программа делает фоновый снимок передней камерой, и тут же отправляет его по электронной почте (а почту мы настроили в начале отзыва). А спустя еще пять секунд отключает воспроизведение (это я уже забочусь о воре - "Все пройдет" вполне может использоваться в качестве оружия массового поражения живой силы врага), можно и не отключать - пусть мучается...
Вот в таком виде получим сообщения:
Кстати, в приложении реализован мощный потенциал переменных - автоматически может быть передана тем или иным способом абсолютно разная информация: погода, состояние батареи, буфер обмена, статус будильника, код оператора сети, собственная переменная любого содержания.
Нет, я прекрасно понимаю, что телефон будет отключен, как и интернет... Потому я сразу сказал - сценарий наивен и нереалистичен, но ведь можно другое условие придумать... Ошибка ввода пароля, к примеру, или еще чего - все от фантазии зависит.
Из простого и банального - помню, на каком-то Qtek пользовался озвучиванием времени... Так и сейчас, например, на двойное (или тройное, или четверное) нажатие медиакнопки, телефон нам скажет время. Или погоду. Или заряд батареи. Или любой иной заданный текст. Конечно же, для этого используется родной "движок" TTS телефона - все без фантастик. Работа с текстовым "движком" реализована очень неплохо.
Вот вам пример еще один... Мы в наушниках, слушаем музыку, поступает входящий вызов... хорошо бы узнать, кто звонит, потому как зима за бортом, телефон далеко, и в случае большинства звонящих - пусть летом перезвонят. Так вот, можно сделать все крайне просто: "Входящий вызов" - "произнести контакт". Но в такой реализации голос пойдет поверх мелодии, в том числе из динамика телефона, а во-вторых, внезапно сказанное имя и пропустить можно. Неудобно, словом. Потому, опять же, думаем... Первое, нужно привлечь внимание, соответственно некоторое время пусть играет обычный сигнал, скажем - 3 секунды. Второе, создаем идеальные условия для слышимости имени: глушим в ноль канал рингтона, и накручиваем на максимум голосовой канал.
Третье, запускаем речь по голосовому каналу (рингтон молчит, динамик телефона молчит, в наушниках идет нужное имя).
В завершение, спустя секунду восстанавливаем громкость рингтона, и он вновь играет. Благодаря такой реализации имя вызывающего слышим только мы в наушниках, и оно не накладывается на проигрываемую мелодию.
Еще одна моя крайне насущная проблема вполне может решиться простейшим набором действий. У меня довольно часто телефон сам звонил кому-то из кармана, а если и не звонил, то лез в настройки, в камеру, что-то делал и жил своей жизнью. Конечно, в приличных телефонах есть режим защиты в кармане, но далеко не всегда он корректно работает, да и присутствует тоже не так уж и часто. Так вот, банальный набор-связка "Разблокировка телефона + Датчик приближения близко" значительно облегчает жизнь. Чтоб во время разговора ничего не блокировалось, когда не нужно, - дополним "Не во время звонка". И все... Теперь телефон разблокирует экран и проверяет датчик, если он в положении "близко" (а это значит только одно - телефон лежит где-то), то экран тут же гаснет. Все гениальное просто...
Работает программа и с файлами. Придумать реализацию копировать/вставить я пока не смог, но вот включить логирование вызовов - да. Но пошел сложным путем: первый шаг - макрос запускает таймер, считающий продолжительность звонка, второй макрос - создает файл в заданном нами месте и наполняет его нужной информацией.
В моем случае: номер, имя, дата, время, продолжительность. Файл остается на телефоне, при необходимости, он автоматически может быть куда-нибудь отправлен.
Очень часто что-то идет не так, и тупо не работает. Для этого имеется простой лог-отладчик, где простым языком излагаются события, и отследить, где именно это самое что-то идет не так, довольно просто. Кроме того, всегда есть возможность протестировать итоговые действия - корректно ли в принципе их телефон обрабатывает.
Знаете что, для всего вот этого не нужны дополнительные модули - все штатный функционал (кроме отключения индикатора - единственный дополнительный элемент скачать придется).
Для продвинутых пользователей МакроДроид предложит добавить модули Таскера и Локали, которые в большинстве своем абсолютно совместимы.
А для самых продвинутых - заняться перехватом интентов (я не буду на сем останавливаться - опять же, кто знает, тому мои слова покажутся наивным бредом, кто не знает - бредом заумным), но факт есть факт - даже если в программе явно отсутствует действие, это вовсе не значит, что реализовать это невозможно в принципе.
Вообще, программа не лучшая в своем классе, не самая совершенная и продвинутая - ее главное достоинство - простота. В этом кроется и главный ее недостаток. Вот, к примеру, нельзя настроить уже упомянутую "Тряску": нельзя задать чувствительность, длину взмаха, направление его, количество взмахов. Вроде мелочь, но именно из-за этого нельзя сделать гениальную вещь - активация экрана при подъеме телефона (со стола, из кармана - не важно). А вот Таскер это умеет. Но, с дополнительными плагинами по включению экрана...
Tasker, в принципе, штука универсальная и, пожалуй, эталонная. Единственное, что меня останавливает от его использования, - сложность. Нельзя взять и вот сразу сделать что хочешь, а на "разбираться" у меня со временем не столь хорошо, а вот если кто уже им пользуется, то мне кажется, найти ничего лучше не удастся.
Вторая популярная вещь - IFTTT. Здесь уже подход совершенно иной: основной упор делается на сотню готовых модулей, которые можно активировать одним тапом. Не нужно даже понимать принцип - описание почитали, переключатель активировали и радуемся. Но знание английского необходимо.
Можно и вручную, конечно, но, опять же, мне кажется, функционал программы больше относится к "программно-сайтовой" части, чем к "железной". Например, в IFTTT очень просто организовать отправку текста входящей почты в события календаря - в МакроДроиде я это не осилил.
Мнение
MacroDroid мне понравился. В первую очередь своей простотой и интуитивной понятностью. Вообще, создание любого сценария (макроса) отнимает очень немного времени - нужна лишь фантазия. Не нужно никаких специфических знаний или навыков - все элементарно.
Если же идей нет - огромная база уже готовых макросов доступна прямо из программы! Все макросы бесплатны! Полностью. Никаких платежей. Если совсем все плохо - на форуме 4PDA на удивление отзывчивая аудитория...
Можно поделиться своим, ну так, просто для удовлетворения потребностей самореализации.
А можно все забэкапить, что очевидно, но что не очень очевидно - этот бэкап можно восстановить на любом телефоне с МакроДроидом и не самому вот это все делать, а пользоваться уже готовым.
Вот, к примеру, все приведенные мной макросы.
Как бы то ни было, но я вот для себя считаю эту программку одной из самых полезных находок, которая не только дополняет телефон штуками "флагманскими", но и делает его использование намного удобнее. Но, при этом, не стоит и забывать о наличии и гораздо более мощного аналога (Tasker), и десятка практически аналогичных конкурентов: Automagic * Automation, AutomateIt - Smart Automation, E-Robot, Automate, - быть может, если не понравился один, то вполне подойдет другой.
Гординский Олег
Используемое автором устройство: Xiaomi Mi5