пятница, 28 ноября 2014 г.

Автоматизация Android


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





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

SMARTACTIONS



После этого было множество различных программ Tasker, Liama, Auotmatelt и другие.
Так как это не обзор программ, а лишь описание возможностей, дам краткое резюме по трем из них: Tasker, Automatelt, Atooma.

1. Tasker




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

2. Automatelt




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

3. Atooma



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

Теперь о том, что я хотел сделать и что сделал. Все описанное относится к программе Automatelt Pro

Основная логика программы, как и других подобных если что то произошло, то делаем то-то.
То что произошло называется Триггер или Условие, делаем то-то соответственно действие.
Пример:
Нам надо включать WiFi по местоположению. Выбираем условие(триггер) "местоположение", программа его определяет, выбираем тип определения местоположения (GPS или по станциям связи). Далее выбираем действие, в нашем случае WiFi i выбираем режим включить или выключить, в зависимости от того что нам надо.
Можно также задавать группы действий и условий.
Пример:
Задача: включать ночной режим в заданное время. У задачи есть много способов реализации. Допустим вы задаете только время. Но что если вы в это время еще не дома? Так вышло, праздник, событие и т.д. И вы не оказались дома в заданное время. А телефон вам нужен, на него звонят. Надо добавить дополнительное событие. Для подстраховки. Какой наиболее вероятный сценарий вашего поведения ночью, перед сном? Поставить телефон на зарядку.
Выбираем условия:
Время события (допустим) 22.00 до 7.00
Телефон подключен к зарядному устройству.
Таким образом событие наступит только при выполнении этих условий вместе. То есть, если в 22.00 телефон не будет стоять на зарядке, тихий режим включен не будет. Но после того как вы его поставите на зарядку в период наступления события, например в 23.00, режим будет запущен. И напротив, если вы поставите телефон на зарядку до наступления события, например в 21.00, тихий режим включен не будет. Он включится автоматически после наступления указанных событий.

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

Крайне востребованная для многих функция временного отключения звука, может быть решена при помощи одного условия:
Сенсор положения устройства (гироскоп)
Надо задать действия, при положении устройства экраном вниз включается тихий режим. Параметры тихого режима можно настроить очень гибко. К примеру можно задать функцию звонить для определенных номеров. Или отправлять  SMS произвольного содержания, к примеру: " Я не могу сейчас ответить, перезвоню позже". Все эти действия будут совершены без вашего участия, достаточно настроить один раз.

Мои сценарии
Основная проблема - постоянно включенный WiFi. Он использует за день, по моим наблюдениям, около 20% батареи. Сценариев реализации множество, но есть два самых удобных:
а) Wifi постоянно выключен, запрещена автосинхронизация. При запуске определенных программ включается WiFi и происходит подключение к сети.
б) Включение и выключение по местоположению. Этот режим я и использую.
Режим срабатывает по триггеру “местоположение” с точностью позиционирования 800 метров (по умолчанию 200), при включении режима происходят следующие события:
Включается WiFi
Отключается блокировка экрана паролем
Произносится фраза: Welcome home name!
Отправляется SMS жене: “Я дома”
Включается вибрация на заданный период.

2. Звуки и уведомления. Раньше создавал различные сценарии, сейчас использую встроенный в Android 5.0 Lollipop. Единственное что оставил, отключение звука если экран лицом вниз.

3.Включение звука на определенную громкость при подключении наушников.
Триггер - подключение наушников (то есть включение чего то в этот порт)
Действие включение определенного уровня громкости.
Задавать запуск программ не стал, так как могу и YouTube смотреть с наушниками.

4. Включение громкой связи в машине.
Триггер - датчик движения, режим “автомобиль”
Действия:
включение громкой связи
чтение последней SMS

5. При включении GPS автоматически запускать приложение навигации.

6. При извлечении телефона из чехла включать экран.
Это интересно и готовых решений я не нашел. Дело в том, что для корректной и удобной работы надо задействовать несколько датчиков и условий. Режим в идеале должен срабатывать при следующих параметрах:
Экран выключен
Датчик приближения режим “далеко”
Датчик движения
Мне не удалось пока задействовать датчик движения. Несмотря на то что есть запись действий, корректно заставить его работать не удалось. Буду рад подсказкам и советам.

7. Режим путешествие. Активируется вручную. При этом режиме включен WiFi, запущена программа направляющая весь трафик через VPN. Дело в том что триггеры для путешествия задать весьма непросто. Можно сделать если ты “вне какой то территории”. Но иногда надо включить WiFi и в своем городе в кафе. Основная цель этого режима защита траффика от перехвата.
8. Режим плохой погоды. Если в течении ближайших двух часов пойдет дождь или снег, программа голосом и вибрацией выдаст оповещение.

9. Режим “музыка в машине”
Условия:
Включено питание
Подключено нечто в разъем наушников(AUX)
Датчик движения, режим “автомобиль”

Действия:
Запуск программы проигрывания музыки
Включение полной громкости (так как управление звуком будет осуществляться с магнитолы)
Запрет выключения экрана
Громкая связь

10. Низкий заряд батареи.
Так как сейчас есть такая функция в Android 5.0 я ее несколько обрезал.
Условие:
Заряд батареи 20%
Действия:
Отправка SMS по заданным номерам с текстом: “My battery is low”
Остальные функции энергосбережения взяла на себя система.

Это то что я сделал на сегодняшний день. В планах реализация сценария автоматического заполнения количества отработанных часов (TimeSheet). Есть определенные сложности с реализацией в связи с характером моей работы. Очень много непостоянных факторов.
Автоматизация действий торрент клиента на моем мини сервере на базе устройства XIOS на Android. Реализация некоторых типов голосовых уведомлений в доме и машине.

В заключение.
Возможности программ подобного типа почти не ограничены. Можно создавать различные сценарии, в том числе и осуществлять псевдо тапы по экрану. Реализация тех или иных задач зависит от вашей фантазии и понимания логики работы устройства. К сожалению, подобные продвинутые планировщики используются только незначительным количеством людей (в процентном соотношении ко всем пользователям смартфонов). Связано это в первую очередь с интерфейсом и удобством создания тех или иных сценариев. Опять же позволю себе заметить, наиболее удобная реализация была и есть в SMARTACTIONS от Motorola.


Комментариев нет:

Отправить комментарий