MacroDroid — Делаем телефон еще умнее!
Лет, наверное, пять назад мне понадобилось, чтоб телефон в определенных местах сам снижал громкость до 30%. Именно тогда я связался с Tasker’ом. Спустя пару месяцев я осознал, что это ни разу не программа и уж, тем более, не средство оптимизации — самое емкое определение, что я услышал, — «проблемно-ориентированный язык». Да, сделать можно почти все, но при этом мозг может не просто закипеть, а еще и вытечь. По крайней мере, мне тогда так казалось. Еще спустя пару месяцев, когда старенькая Sony Sola уже автоматически начала формирование Скайнета, я Таскер удалил — «во избежание», так сказать. я с детства считаю восстание машин не научной фантастикой, а реальной угрозой.
И вот сейчас я вновь связался с этими всеми автоматизациями на телефоне. Связался не просто так, а с конкретной целью: браслет Honor Band 3 в работе с уведомлениями несколько ограничен, а благодаря программке удалось заставить его не просто принимать нужные мне сообщения, но и прогноз погоды выводить. А дальше была простая мысль: если программа стоит, то почему бы ей не делать что-то еще. И тут понеслось.
Как и любой аналог (а их хватает — мне просто этот под руку попался в свое время), изначально поставляется в бесплатной редакции с возможностью покупки. Отличается бесплатная версия ограничением на количество правил (максимум — пять) да наличием рекламы. Как по мне — лучше купить сразу (цена — 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
Источник