Содержание статьи
- Устанавливаем
- Краткий словарик
- Всплывающие уведомления с тонкой настройкой
- Смартфон в качестве тачпада для управления воспроизведением музыки в автомобиле
- Диалог с выбором вариантов
- Защита приложений с помощью пароля или отпечатка пальца
- Распознавание текста из фото с добавлением заметки в Google Keep
- Программируемый фонарик
- Снятие логов
- Управление закрытыми настройками
- Другие возможности
- Заключение
AutoTools — детище одного из самых известных активистов «Таскера», португальского разработчика Жуана Диаса (João Dias), написавшего не один десяток плагинов. Но если другие его плагины выполняли строго определенные функции, то AutoTools — этакий швейцарский армейский нож на все случаи жизни.
Перечень его возможностей включает в себя: работу с массивами, диалоги в стиле Material Design, просмотр данных о сетевых подключениях, фонарик, управление жестами, чтение и запись JSON, чтение логов Android (logcat), распознавание текста, работу с сенсорами, работу с регулярными выражениями, всплывающие уведомления, вибрацию и многое другое. И все это без прав root.
Устанавливаем
Плагин можно найти в Play Store. После установки открываем его и активируем 30-дневный триал. Этого точно хватит, чтобы оценить возможности плагина и решить, стоит ли его покупать.
Полная версия стоит 2,99 доллара и приобретается через AutoApps — агрегатор со всеми прогами, альфа- и бета-версиями других плагинов автора. В самой проге больше ничего не настраивается, но есть ссылки на инструкции и примеры использования. Все взаимодействие традиционно происходит внутри самого «Таскера».
AutoTools — это так называемый Action-плагин. Это значит, что сам он не продуцирует события, на которые может реагировать Tasker, но может отвечать на события. Работает это так: ты создаешь новый профиль Tasker, выбираешь контекст (время, действие, подключение к Wi-Fi или любое другое), а когда Tasker предлагает создать для него задачу (Task), вводишь имя задачи, затем нажимаешь плюс, выбираешь Plugin, затем AutoTools и нужный раздел в выпадающем списке, например Flashlight.
Ниже я приведу несколько примеров использования AutoTools для решения самых разных задач.
Приложение AutoTools и выбор действия в «Таскере» |
Краткий словарик
- Профиль (Profile) — основная единица в Tasker. Представляет собой условие/контекст (Если.../If...) и реакцию на него (То сделай.../Then do...).
- Контекст (Context) — то, на что надо реагировать.
- Задача (Task) — набор действий, которые необходимо совершить. Можно создавать без привязки к профилю и, присвоив иконку, запускать в любое время с рабочего стола.
- Действие (Action) — единичный шаг внутри задачи. Например, выключить Wi-Fi.
- Состояние (State) — разновидность контекста. Имеет длительность. Пока состояние активно, профиль действует.
- Событие (Event) — разновидность контекста. При наступлении события профиль срабатывает один раз.
- Проект (Project) — несколько сгруппированных для удобства профилей, находящихся на одной вкладке.
Всплывающие уведомления с тонкой настройкой
Функция Toast показывает продвинутые всплывающие уведомления с различными настройками.
Создаем действие Plugin → AutoTools → Toast и настраиваем конфигурацию, как душе угодно. Если поставить галочку на Use HTML, можно размечать сообщения тегами. Настраиваются цвет текста, размер текста, шрифт (указывается путь до ttf-файла), цвет бэкграунда, иконка и ее размер, закругления, положение сообщения. Как в итоге это смотрится и чем отличается от стандартного Alert — Flash, можно увидеть на примерах ниже.
Стандартный Flash и Toast из набора AutoTools |
Смартфон в качестве тачпада для управления воспроизведением музыки в автомобиле
В AutoTools есть функция Gestures Screen. Она создает черный экран с поддержкой свайпов, на которые можно повесить команды. Смысл здесь довольно простой — превратить смартфон в своего рода программируемый тачпад.
Для примера создадим профиль, который при запуске музыки в машине через Bluetooth будет показывать черный экран (актуально для AMOLED-экранов), позволяющий управлять воспроизведением при помощи свайпов.
Для этого сначала необходимо отследить переменную, которая сигнализирует о том, что музыка играет, с помощью другого плагина — AutoNotification.
Создаем профиль: Event → Plugin → AutoNotification → Intercept. В конфигурации в разделе Apps выбираем интересующие нас плееры (допустим, VK и Google Play Music). Принимаем условие и создаем действие (название можно не вводить): New Task → Plugin → AutoTools → System State. В конфигурации ставим галочку на Audio. Возвращаемся к действиям и добавляем переменную: Variables → Variable Set. В поле Name вписываем %MusicPlaying
, а в поле To пишем %atmusicplaying
. Теперь при каждом запуске музыки переменная будет обновляться.
Далее создаем профиль, реагирующий на включение музыки: State → Variables → Variable Value. Для условий выбираем переменную %MusicPlaying
(можно сделать это, нажав на иконку в виде бирки) и для значения вписываем true.
Создаем новое действие: New Task → Plugin → AutoTools → Gestures Screen. В поле конфигурации ищем AutoApps Commands → Swipes → Down. В поле Distances оставляем 100, в поле Commands вписываем команду stopplaying. Возвращаемся и аналогичным способом прописываем команды nexttrack для свайпа вправо, previoustrack для свайпа влево и pausetrack для свайпа вверх. Нажимаем два раза назад и ищем в списке Background, в меню Color выбираем черный цвет, после подтверждения сдвигаем ползунок с прозрачностью вправо до упора и возвращаемся к действиям.
Настроенный профиль после запуска музыки из выбранных приложений будет показывать черный экран (экономя батарейку) и посылать введенные команды при свайпах более 100 пикселей. На эти команды надо среагировать, но сначала добавим возвращение с черного экрана при остановке музыки. В только что созданном профиле долгий тап на действие, затем Add Exit Task. Жмем на плюсик, выбираем AutoTools и в конфигурации ставим галочку на Close Screen.
Чтобы реагировать на команды, необходимо добавить еще четыре профиля. На примере свайпа вниз: Event → Plugin → AutoApps. В конфигурации в поле Command Filter вводим stopplaying и отмечаем галочкой Exact, чтобы не было ложных срабатываний. Далее возвращаемся и создаем новое действие Media → Media Control и выбираем в списке Stop. Повторяем по аналогии для остальных команд. Для команды pausetrack выбираем Toggle Pause.
Все. Имеем рабочий профиль. Чтобы профиль срабатывал только при проигрывании музыки в машине, необходимо долгим тапом на условии AutoNotification Intercept в первом профиле добавить дополнительное условие BT Connected и, нажав на лупу справа вверху, выбрать из списка приемник в машине.
Профили управления музыкой |
Диалог с выбором вариантов
Функция Dialog позволяет вывести на экран различные типы диалогов для взаимодействия с пользователем и реагировать на полученные ответы. Диалоги можно встраивать в профили, действия и так далее. Например, можно вывести дополнительную информацию или предупреждение с кнопкой ОK и продолжить выполнение только после нажатия на нее. Как вариант — кнопки ОK и Cancel или Yes/No. Можно вывести список, запросить цвет или дату со временем, запросить ввести текст или приложить палец к сканеру отпечатков.
Добавляем действие Plugin → AutoTools → Dialog и в конфигурации выбираем 2 Choices. Далее вводим заголовок (Title) и текст, который будет на кнопках Choice one и Choice two. При желании можно настроить иконку, бэкграунд и команды, отправляемые нажатием на каждый из ответов. По умолчанию они повторяют текст кнопок. Реагировать на эти команды можно, отлавливая переменную %atcommand
.
Выбор вида диалога и диалог с двумя ответами |
Защита приложений с помощью пароля или отпечатка пальца
Ту же функцию Dialog можно использовать для запроса отпечатка пальца. Я покажу, как настроить блокировку с распознаванием отпечатка на любую прогу (для устройств, где этот сканер есть).
Создаем задание (Task) с названием «Отпечаток»: Plugin → AutoTools → Dialog. Выбираем тип диалога Fingerprint. Заполняем Title и Text, количество попыток, текст при неудачном распознавании. Возвращаемся и ставим галочку на Continue Task after error, иначе после неудачного распознавания действие просто остановится и ничего не произойдет.
Далее добавляем действие Task → If. Для переменной используем %atbutton
, для значения — цифру 2, которая отвечает за сканер (1 — это кнопка Cancel в диалоге). После удачного распознавания выведем текст, для чего добавим Alert → Flash. Затем добавим Task → Else и впишем текст после неудачи также через Alert → Flash. После чего добавим App → Go Home. Это выкинет действие на домашний экран, если распознавание не удалось или была нажата кнопка Cancel. Закроем это дело через Task → End If.
Теперь создадим новый профиль с условием Application и выберем необходимые проги, например Google Photos или соцсети. В качестве задачи (Task) указываем только что созданный «Отпечаток».
По аналогии можно создать профиль с запросом пароля, используя в диалоге Input Text вместо Fingerprint.
Настройка сканера отпечатков на запуск прог |
Распознавание текста из фото с добавлением заметки в Google Keep
Сразу оговорюсь, длинные тексты из документов распознать не получится. Фото должно быть на белом фоне с четко читаемым текстом.
Нам понадобится плагин AutoShare и импортированный Intent с названием Image — Take Photo.
Создаем Task с названием Save text to Keep. Добавим действие Plugin → AutoShare → AutoShare. В конфигурации на вкладке App выбираем Image. На вкладке Action → Take Image. На вкладке File Path вводим путь, где будет лежать временный файл. Например, file:///storage/emulated/0/temp.jpg
. После этого идем назад и для проверки добавляем действие Alert → Flash, в поле Text вводим переменную %asfilepath
.
Для распознавания текста нам понадобится добавить действие Plugin → AutoTools → OCR. В поле Image необходимо ввести ту же переменную %asfilepath
. Следом добавляем Alert → Flash и в качестве текста вводим переменную, отвечающую за распознанный текст, — %atocrvalue()
.
Далее необходимо закинуть текст в буфер обмена через все тот же Set Clipboard, но мы оформим это как заметку. Создаем следующим действием Plugin → AutoShare → AutoShare, на вкладке Find Compatible Apps выбираем Google Keep и в графе Text вводим %atocrvalue()
.
Сохраняем, присваиваем иконку, добавляем на рабочий стол. После запуска делаем фото, и в результате откроется Google Keep с редактируемой заметкой и распознанным текстом.
Профиль распознавания текста из фотографии |
Программируемый фонарик
Функция Flashlight: Plugin → AutoTools → Flashlight. Можно включить, выключить, переключить состояние или промигать шаблон. Можно использовать плагин AutoVoice для управления фонариком голосом или просто создать действие Toggle, прикрепить к нему иконку и вынести на рабочий стол. Тогда можно включать и выключать фонарик, не влезая в настройки.
Также можно ввести шаблон (pattern) для мигания в миллисекундах через запятую, где первое число — это пауза, а второе — время свечения светодиода. Приятное дополнение — возможность «настучать» шаблон мигания, для этого используется Vibration Pattern Creator, который является частью раздела Vibration и выполняет аналогичные функции. Просто стучим три коротких, три длинных, три коротких и получаем SOS на выходе. Ну или можно промигать что-нибудь посерьезнее с помощью импорта созданного проекта Morse_Code.prj. Для Parameter 1 используется фраза, которую необходимо промигать (только цифры и английские буквы). Перевести проект на русский можно самостоятельно, поправив конец XML-файла, в котором указаны соответствия букв коду.
Настройка фонарика |
Снятие логов
Часто при различных ошибках или тестировании приложений пользователи сталкиваются с тем, что разработчики или более продвинутые пользователи просят скинуть им LogCat. И тут менее знающие начинают искать по Сети, да и у продвинутых это занимает время, так как нужен комп или эмулятор терминала.
Я покажу, как автоматизировать этот процесс и сэкономить время, настроив один раз необходимый профиль в «Таскере». Напомню, что root не нужен, но необходимо разрешение чтения логов для AutoTools. Дать такое разрешение можно, войдя на устройство с помощью ADB и выполнив такую команду:
$ adb shell pm grant com.joaomgcd.autotools android.permission.READ_LOGS
Итак, для начала создаем задание с названием LogCat через Plugin → AutoTools → LogCat. В конфигурации на вкладке Level выбираем значение Error. Ниже можно добавить ключевые слова и количество строк для вывода (по умолчанию 100).
Для проверки первой строки логов добавляем Alert → Flash и в поле Text вводим %atlogtime(1) %atlogtag(1) %atlog(1)
. Добавляем AutoTools → Arrays следующим действием. Это раздел для работы с массивами.
На вкладке Input Arrays вводим значения %atlogtime()|%atlogtag()|%atlog()
. Их можно вставить, нажав на кнопку в виде бирки. Возвращаемся и переходим на вкладку Merging. Отмечаем Merge Arrays галочкой и в поле Merged Array Name вводим atlogs. В поле Merge Format вводим « - » (без кавычек: пробел дефис пробел). В поле Join Merged Arrays один раз нажимаем Enter (для перевода строки), затем кнопку ОK.
На выходе мы получим переменную %atlogs
с массивом ошибок в удобном для восприятия виде. Что с ней делать далее, решать тебе. Можно копировать в буфер обмена, добавив действие System → Set Clipboard и указав %atlogs
в качестве аргумента. Или сразу отправлять на email через плагин AutoShare.
Снятие логов с устройства |
Управление закрытыми настройками
Функция Secure Settings позволяет изменять настройки, по умолчанию закрытые для других приложений, например GPS и переключение режимов точности обнаружения, включение/отключение экрана блокировки, включение режима экономии батареи.
Права root для этого не нужны, но, как и в случае с LogCat, необходимо дать права на изменение этих настроек с помощью ADB:
$ adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
После этого можно создавать профили. Сам процесс описывать не буду, он довольно простой и укладывается практически в одно действие «Если... то...». Отмечу, что работоспособность команд зависит от версии Android. Приведу лишь несколько use case’ов, относящихся к Plugin → AutoTools → Secure Settings:
- при включении карт, навигации или при снятии фото — включать максимальную точность определения координат через Location Mode → High Accuracy. При выходе скидывать на Off;
- отключение мобильной передачи данных при подключении к домашней точке доступа;
- включение режима экономии батареи на ночь через Battery Saver → Enable;
- включение голосового ввода текста, если телефон лежит на горизонтальной поверхности, и переключение на клавиатуру при взятии в руки через Services → Input Method;
- включение ночного режима (оранжевый оттенок) или уровень яркости по таймеру вечером через Display → Night Mode и Display → Adaptive brightness level;
- изменение политики отображения уведомлений на экране блокировки в зависимости от местонахождения через Lock Screen → Show Private Notifications и отключение блокировки экрана при коннекте к домашней точке доступа;
- запуск определенных приложений с выбранной ориентацией экрана.
Возможности Secure Settings |
Также можно произвольно менять другие системные и глобальные настройки из одного места. Изменение части настроек было показано в номере 197 в статье «SQLite под микроскопом». Я описывал сложный кейс с изменением значений непосредственно в базе на устройстве с использованием root. Тут это делается также в одно действие присвоением значения переменной. Полный перечень команд можно узнать, подключив устройство к компу и выполнив из консоли следующие команды:
$ adb shell settings list system
$ adb shell settings list global
$ adb shell settings list secure
Приведу наиболее интересные команды из перечня c указанием примеров аргументов:
dim_screen
— затемняет экран (пример значения: 1);font_scale
— масштаб шрифта (1.0);haptic_feedback_enabled
— переключение вибрации при нажатии на кнопки (1);screen_brightness
— яркость экрана (78);screen_off_timeout
— время выключения экрана в миллисекундах (600000);show_touches
— показывать нажатия (1);vibrate_when_ringing
— вибрация при звонке (1);adb_enabled
— включение отладки по ADB (1);audio_safe_volume_state
— безопасный уровень аудио (3);development_settings_enabled
— отображение меню настроек разработчика (1);device_name
— имя устройства (Nexus 5);mobile_data
— переключение передачи данных (1);android_id
— идентификатор устройства (3861a499dd504976
);bluetooth_address
— МАС-адрес для Bluetooth (78:F8:82:56:81:E6
);install_non_market_apps
— включение установки приложений из неизвестных источников (1);lockscreen.disabled
— отключение экрана блокировки (0);user_setup_complete
— нужно ли запускать мастер первичной настройки телефона при загрузке (1).
Другие возможности
Среди доступных возможностей плагина также есть форматирование текста, математические операции с числами и массивами чисел, подтверждение выполнения операции для продолжения профиля, кастомные вкладки Google Chrome (например, только новые непрочитанные сообщения на форуме), чтение и запись JSON, работа с регулярными выражениями для отслеживания изменений на сайтах, выполнение SSH-команд на удаленном устройстве.
Заключение
Надеюсь, я в очередной раз подвиг тебя изучать Tasker и экспериментировать над устройствами. Ведь с его помощью можно создавать удивительные вещи и, по сути, реализовывать функциональность многих прог, добавляя новые возможности, а не ждать, когда это сделают разработчики. Пиши в комментариях, каких функций не хватает в «Таскере» именно тебе, — возможно, реализация этих запросов уже давно есть в плагинах.