CarWebGuru имеет свою собственную систему событий, которая постепенно развивается. Сейчас можно запускать приложения, реагировать на скорость и положение, говорить случайные фразы и т.д. Но если нужно что-то чего еще не умеет встроенная система событий, то можно воспользоваться сторонними программами автоматизации. Например, Tasker, который уже давно является одним из лидеров в этом направлении.

Таскер позволяет автоматизировать некоторые задачи, например, включать WIFI когда приезжаем домой или запускать приложения при подключении внешнего питания. В качестве действий, Таскер умеет запускать приложения, показывать сообщения, воспроизводить звуки, менять настройки и многое другое.
Tasker — как отправить INTENT — Broadcast Receiver
Теперь к делу. Таскер умеет посылать команды (Intent — BroadCast Receiver), а CarWebGuru умеет их принимать. Там почему бы их не подружить вместе?
CarWebGuru имеет встроенное API, для медиа плеера и для синтезатора речи. Которыми можно управлять с помощью простых команд. Итак для отправления API команды CarWebGuru необходимо задать как минимум 2 параметра:
- 1) Action (id имя встроенного API)
- 2) Command (код команды)
Для управления медиа плеером — «переключить на следующий трек», это выглядит так:
- 1) Action: in.carwebguru.media
- 2) cmd: 5
Где cmd — это имя параметра для команды, а 5 это код команды для переключения трека. Все доступные коды можно посмотреть на странице API.
В Таскере, это задается следующим образом.
- 1) Action: in.carwebguru.media
- 2) Extra: cmd:5
Т.е аналогично, нужно задать всего два параметра. Теперь подробно как создать такое действие в Таскере. Первая закладка PROFILES это триггеры или условия для срабатывания. Работа с ними в данный обзор не входит, так как это целая отдельная тема для обзора. При срабатывании триггера, нужно выполнить команду, вот они нам и нужны. Команды находятся на вкладке TASKS. На этой вкладке нажимаем кнопку с плюсом (право низ), вводим название действий, например, «TestTask». Таскер может выполнять не одну команду, а целый список, поэтому мы сначала создаем группу для команд, а затем будет добавлять команды в эту группу.

Даже если нужно выполнить всего одну команду, все равно придется сделать группу. Итак группу создали, теперь аналогично нажимаем кнопку плюс и появляется список всего того что может выполнить таскер. Список очень внушительный, он может практически все. Все команды разделены на категории, в каждой категории находятся несколько команд.

Для отправления команды нам нужна категория «System«, кликаем на нее и смотрим что там за команды:

И выбираем команду «Send Intent» которая нам нужна. После чего появляется список параметров для отправления Intent с помощью Broadcast Receiver. Как было сказано выше, нам нужно заполнить всего два поля, это самое первое Action и команду с помощью поля Extra. Вот так должно выглядеть:
На всякий случай, посмотрите в самом низу должно быть указано как именно отправлять интент, должно быть по умолчаниюTarget: Broadcast Receiver:
Готово, команда создана. С помощью кнопки «Плей» внизу можно протестировать команду. На скриншоте, для теста добавлена команда Beep которая издает звук с определенной частотой. Она для финальной работы не нужна.

Все готово, теперь если нажать «Плей» в этом окне, то таскер отправит команду CarWebGuru и медиаплеер CWG выполнит команду «Next Music Track».
Как сказать фразу с помощью Таскера и CWG
Если у вас в CWG настроен синтезатор речи, который работает и разговаривает при нажатии на соответствующую кнопку в настройках, то вы можете с помощью таскера отправлять команды на разговор. Т.е. запрограммировать таскер при определенных событиях, отправлять команду CWG для произношения фразы.
Для этого нужно аналогично отправить команду с такими параметрами:
- Action: in.carwebguru.tts
- ds: текстовая фраза
В таскере аналогично задаем всего два параметра, Action и Extra, как на скриншоте:

Готово, теперь мы научились отправлять команды в CarWebGuru с помощью таскера, управлять медиаплеером и произносить фразы. Аналогично можно задавать другие команды о чем будет описано подробнее позже. Полный список команд можно посмотреть на странице описания API.