В данной статье речь пойдет о создании виджетов при помощи
таскер. В этом нам поможет «zoom». Если вам лень читать всю статью внизу даны ссылки
на готовые задачи и виджет.
Что же нам для этого понадобится:
Инструменты:
Постановка задачи
Для создания виджетов мы будем использовать программу zoom. Управление ими осуществлять будем
из таскера. В меню выбора действий есть соответствующий пункт, зайдя в который
мы можем посмотреть список действий, которые нам доступны при работе с
виджетом. В качестве примера будем
работать с АПИ нашего любимого сайта - ДВ.
Рис.1. Вот так
примерно выглядит наш виджет
В качестве примера рассмотрим работу с апи нашего любимого
сайта ДВ. Возьмем проверку статуса пользователя - находится ли юзер на сайте
или нет. Работа разделяется на две части: 1.создание виджета 2. Написание
функции запроса статуса пользователя с сайта и вывод информации в виджете.
Виджет будет состоять из текста, картинки и одной кнопки. В
тексте будем выводить инфу - онлайн юзер или нет, на кнопке будет висеть
обращение к задаче таскера (в ней мы будем обрабатывать результаты общения с
сайтом) ну и картинка для наглядного отображения. В функции мы будем: вводим, ник пользователя
(того чей статус мы хотим проверить), делаем пост запрос (вернет 1 если на сайте
и 0 если офлайн). Пишем результат в файл, читаем файл, проверяем, если онлайн -
выводим текст "онлайн" зеленым цветом ставим соответствующую
картинку. Если офлайн выводим слово "офлайн" красным цветом и
соответствующую картинку.
Ход работы:
1.Виджет
Рис. Действия zoom доступные в tasker
Сначала создадим виджет: запускаем zoom
, в правом нижнем углу нажимаем на "+". Задаем параметры виджета. Нам
интересны первые два пункта это название виджета (я назвал статус) и размер (3
х 1). Далее добавим элементы button , text , image. Расположим элементы как вам
по вкусу. Как это сделал я показано на скриншоте.
Рис. Задаем
название виджета, размер и цвет.
Нажмем на кнопку и зададим ее параметры. Пока нас интересует
только название кнопки - я написал "проверить ". Картинку можно выбрать любую пока что.
Рис.2 меню
редактора виджета. Расположение элементов на виджете.
2.Задача
Рис. 3.
Используемые действия в задаче.
Виджет почти готов. Приступим к созданию функции. Общаться с
сервером мы будем при помощи Get запросов. В Таскер нам предоставляется такая функция в
разделе «сеть». Зайдем в таскер, создадим задачу, назовем ее "статус
юзера". Логику работы задачи я
описал выше.
1.Ввод значения переменной. Эту функцию можно
найти в меню «категории действий» >> «переменные» >> «ввод значения
переменной». В ней параметры: название – надпись отображаемая вверху окошка
ввода, переменная – в какую переменную мы поместим введенную нами информацию,
тип вводимых данных – числа/текст и т.д. , layout – как будет выглядеть окошко ввода( я
перенастроил на свой вкус), задержка – через какое время скрывать окно
автоматически.(у меня полученные данные хранятся в переменной %user_name
2.,3., установить переменную. Найти такую штуку можно
все там же в разделе «переменные». Задаем имя переменной (в моем случае она
называется %user_status_api). Поскольку тут нам ничего вводить не нужно а просто поместить в
переменную часть апи(все ее содержание кроме ника в конце) то во втором
параметре «до», пишем строку: api.dimonvideo.ru/smart/gapi.php?op=6&user=
. Затем установим
переменную %user_status_api до %user_name с параметром
«добавить». Таким образом к части ссылки из апи мы добавляем в самый конец
введенный нами ник пользователя.
4. Делаем get запрос, используя апи сайта и записываем
результат в файл. Сеть>>get запрос. Параметры: server:port - данные берем из переменной %user_status_api. Остальные параметры можно не трогать, вот
только зададим куда записывать результат – output file (у меня test.txt то есть в тестовый файл в корень флэш
карты.)
Рис. Действия
с сетью доступные в tasker
5. Читаем файл в переменную . Нам нужно прочитать что
находится в нашем файле test. Для этого в «категории действий» выбираем пункт
«файл» >> «read file». Параметры: файл – где находится наш файл. Переменная
– в какую переменную запишем результат. (у меня переменная называется %status_user)
6-9. Если результат = 0 пишем офлайн и делаем цвет шрифта
красным. Логическая операция «если» находится в «категории действий» >> task. В ней мы сравним переменную %status_user = 0. Под
операцией сравнения находится ряд действий которые будут выполняться если
переменная равна нулю. Переход к следующему действию если не равно нулю.
10-13. Если результат = 1 пишем онлайн зеленым цветом. Для
этой операции нам понадобится логическое «else если». Опать же сравним переменную %status_user , равна ли
она 1. Если равна то выполняем ряд действий.
Рис. Структура
задачи
Вернемся к виджету. Настроем параметры кнопки , последний
параметр - функция выполняемая при нажатии. Выбираем последний пункт :
"tasker task" и нашу созданную функцию. Все готово . Теперь можем
расположить наш виджет на рабочем столе и проверить его работу. При нажатии на
кнопку появляется окно ввода ника пользователя, после чего статус будет
отображен в виджете. Так же можно настроить
автоматическое обновление данных в виджете . Напомню что таскер должен
быть включенным .
Рис. Выбираем
действие по нажатию на кнопке
Рис. В
качестве выполняемого действия используем задачу tasker
Автор
материала: Zaterehniy
Дата
написания: 4.05.2013
Мой угол:
тут
Версия ПО: tasker 1.6u1(лиценpия), zoom 1.0.4 (маркет). Так же
использовались бесплатные пакеты иконок к такскер- Holo light MD, holo dark md.
Ссылки:
задача для tasker ,
готовый виджет.
Женя здравствуйте. Спасибо за подробные, "пошаговые" объяснения и розьяснения!!! У меня к Вам большая просьба. Увидел на форуме одну публикацию и рекомендации к ней, суть: "Установить автоответчик на Андроид". Сделал все как и было рекомендовано, установил сам автответчик+программу которая записывает разговоры а вот дальше....., было указано установить программу "Tasker" и ВСЕ.......больше ничего. Мучаюсь уже 4день, никак не могу понять как в "Tasker" установить (записать) голос и как вообще все вместе связать воедино? Просьба. Не могли ли Вы мне также доступно (пошагово) показать (рассказать), куда "пальчиком тыкать". Мой адрес: don.keleberda@gmail.com Заранее благодарен, Владимир.
ОтветитьУдалитьЗдравствуйте Евгений !
ОтветитьУдалитьА существует ли у “tasker” возможность осуществить включение смартфона по правильно набранному паролю ? То есть если пароль не правильный то смартфон выключить .Есть ли у “tasker” для этого соответствующие средства ?
Спасибо , Саня .
Здравствуйте Александр . насколько мне известно в андроид нет такой возможности ( включения смартфона) по соображениям безопастности. Если всё таки и возможно то думается это некий костыль . что то подобное делали давным давно на симбиан ( я про включение ). Там было завязано на будильнике , только он мог включить аппарат. Не совсем понятно какая задача стоит , т.е. как должна происходить проверка пароля если смартфон выключен.
УдалитьСпасибо за быстрый ответ.
УдалитьНажатием кнопки ВКЛ включаем аппарат , происходит старт "андроида" , как только стало возможно система блокируется , на экране появляется простенькая клавиатура (только цифры) и требование ввести пароль (пин код) , вводим , если правильно - снятие блокировки и обычная работа .
Если не правильно - запуск процедуры выключения аппарата .
Примерно то же самое при попытке войти в аппарат с ЮСБ порта .
Но , если аппарат уже включен и просто заснул - то пробуждение должно происходить как обычно . Именно по этому не подходят , широко предлагаемые блокировщики экрана .
Вот как то так я вижу эту задачу , вот только реализовать не умею .
Спасибо за быстрый ответ.
ОтветитьУдалитьНажатием кнопки ВКЛ включаем аппарат , происходит старт "андроида" , как только стало возможно система блокируется , на экране появляется простенькая клавиатура (только цифры) и требование ввести пароль (пин код) , вводим , если правильно - снятие блокировки и обычная работа .
Если не правильно - запуск процедуры выключения аппарата .
Примерно то же самое при попытке войти в аппарат с ЮСБ порта .
Но , если аппарат уже включен и просто заснул - то пробуждение должно происходить как обычно . Именно по этому не подходят , широко предлагаемые блокировщики экрана .
Вот как то так я вижу эту задачу , вот только реализовать не умею .
Пытаюсь оставить комментарий в третий раз , первые 2 раза вчера они почему то исчезали .
ОтветитьУдалитьСпасибо за быстрый ответ.
Нажатием кнопки ВКЛ включаем аппарат , происходит старт "андроида" ,
как только стало возможно система блокируется , на экране появляется простенькая
клавиатура (только цифры) и требование ввести пароль (пин код) , вводим ,
если правильно - снятие блокировки и обычная работа .
Если не правильно - запуск процедуры выключения аппарата .
Примерно то же самое при попытке войти в аппарат с ЮСБ порта .
Но , если аппарат уже включен и просто заснул - то пробуждение должно происходить как обычно .
Именно по этому не подходят , широко предлагаемые блокировщики экрана .
Вот как то так я вижу эту задачу , вот только реализовать не умею .