Note: screenshots are from an earlier version.
A task is a set of actions, usually with a name.
Here's a simple task with two actions. It first makes
an announcement and then takes a photo.
The icon in the bottom
right indicates an Execute Task, which runs each of it's
actions in sequence. It could also be a
Menu Task () which shows
a dialog to allow the user to pick one of the actions.
Although this one is a simple task, they can become quite long and complicated and so
can be exported and imported for backup and sharing purposes.
There are currently more than 190 built-in actions available in 14 categories.
- Alert: Flash, Menu, Notify LED/Sound/Vibrate, Cancel Notification, Popup HTML/Timed/WithTaskButtons, Set Light (LEDs,camera,keyboard,buttons etc root only), Torch, Vibrate, Vibrate Pattern
- App: Calendar Insert, Go Home, Kill App, Load App, Open Map (/StreetView/Navigate), Set Alarm
- Audio: Alarm/Call/DTMF/Media/Notification/Ringer/System Volume, Haptic Feedback Toggle, Microphone Mute, Notification Pulse, Notification/Ringer Vibrate, Silent Mode, Speakerphone, Sound Effects toggle
- Display: Auto-Brightness, Car Mode, Close System Dialogs, Dreaming (4.2.1+)), Keyguard, Keyguard Pattern, Night Mode, Display Brightness, Display Off Timeout, Display Rotation, Set Wallpaper, Stay On, Status Bar (expand/collapse)
- File: Browse Files, Directory Create/Delete/Copy/Move, File Copy/Delete/Move/Open, List Files, Write To File, Read Line/Paragraph/File, Remount (FS), Zip/Unzip File
- Input: Button, Dpad, Type (root only), Get Voice, Input Method Select, Soft Keyboard (show), Voice Command
- Media: Media Button Events (grab), Media Player Control, Music File/Dir, Play/Forward/Back/Stop, Take Photo, Record Audio, Record Audio Stop, Default Ringtone, Play Ringtone, Crop/Filter/Flip/Resize/Rotate Image, Scan Card
- Misc: Send Intent, Get/Stop Location, GPS Set (<2.3 or Cyanogen/submod), Say, Say To File, Shut Up, Search For, Set Clipboard, Reboot (root only), Set CPU (root only) Set Timezone, Test
- Network: Airplane Mode, Airplane Radios, Autosync, Bluetooth, Bluetooth ID, Compose Email, Browse URL, HTTP GET, HTTP POST, Mobile Data (on/off), Mobile Data 2G/3G (Cyanogen only), USB Tether, WiFi (set/toggle), Wifi Disconnect/Reassociate/Reconnect, Wifi Sleep, Wifi Tether, Wimax (set/toggle)
- Phone: Bluetooth Voice, Call, Call Log, Call Block/Divert/Revert, Compose MMS/SMS (Templated), Contacts, End Call, Radio, Send SMS, Send Data SMS, Silence Ringer, Take Call
- Scene: Create,Show,Hide,Destory Scene, Element Add Geomarker/Delete Geomarker/Back Colour/Border/Image/Map Control/Position/Size/Text/Text Colour/Text Size/Value/Visibility/Web Control/Test
- Settings Dialog: 30 System Settings dialogs
- Task: For, End For, If, Else, End If, Goto, Perform Task, Return, Stop, Wait, Wait Until
- Tasker: Change Icon Set, Profile Toggle, Query Action, Set Tasker Icon, Set Widget Icon, Set Widget Label
- Variables: Array Push/Pop/Clear, Variable Set/Clear/Convert/Inc/Dec/Query/Randomize/Split/Join
- Zoom: Element Position, Size, State, Visibility, Text Size, Text, Image, Text Colour, Image Alpha
- 3rd Party: Android Notifier, Astrid, BeyondPod, Due Today, JuiceDefender Data/Toggle, Gentle Alarm, NewsRob, OfficeTalk, SleepBot, SMS Backup+, TeslaLED, WidgetLocker
There is also a Plugins category for any action plugins that are installed on the device.
Please note that not all actions are supported on all devices.
Most actions have parameters. Here's the configuration screen (Action Edit) for the Take Photo action in the Task Above.
Notice the If row at the bottom ? That's present for every action and lets you specify
a condition without which the action won't happen.
Variables are an important feature of Tasker. A variable is just a name for an unknown value e.g. %BATT which holds the current
A variable name can be included in any textual action parameter, and when the action executes it's value is substituted.
Here's an example of using the Current Battery Level variable in a Popup action.
The image on the left is the Popup Task Icons action,
which takes some text and a couple of other tasks
as parameters. In the text, the variable %BATT is used
and you can see in the right hand image it's replaced
with the actual battery level when the Task runs.
Another use for variables is in conditionals.
In this example, the Wifi state is toggled, and
then the icon of a home screen widget is set depending on the
value of the built in variable %WIFI.
The final use of variables is for looping.
This example vibrates the device briefly 10 times.
%COUNT is a user variable, which can be
created with any name you like.
Note the condition on the last action,
which says only to go back and vibrate again
if %COUNT is less than 10.
Even complicated mathematical expressions are possible e.g.
If %TIMES > %LASTTIME + %PERIOD * 2
(%TIMES is the current time in seconds).
Available built-in variables are:
Airplane Mode Status, Battery Level, Bluetooth Status, Brightness, Calendar List, Calendar Title/Descr/Location, Called Name,Number, CPU Frequency/Governor, Device ID/Manufacturer/Model/Product/Telephony ID, Duration,Time,Date (Out), Clipboard Contents, Date, Display Timeout, Day of Month/Week,
Free Memory, GPS Status, HTTP Response/Data, Keyguard Status, Email From/Cc/Subject/Date/Time, Input Method, Light Level, Location/Accuracy/Altitude/Provider/Speed/Fix Time, Magnetic Field (strength), Music Track, Pressure, Profiles Active, Profiles Enabled, Root Available, Screen State, SDK verson, Text Sender Address/Name/Body/Date/Subject/Time, Cell ID/Signal Strength/ServiceState, Silent Mode, Task Time in Queue,Last Caller Name/Number/Date/Time (In), Last Application, Last Photo, Muted, Night Mode, Notification Title, Phone Number, Roaming, Speakerphone, Tasks Running, Telephone Network Operator, Time, Time Seconds, Uptime Seconds, Speech, Voice Results (speech recognition),
Volume Level Alarm/Call/DTMF/Media/Notification/Ringer/System, UI Mode, WiFi Status, Wimax Status, Window Label
The Userguide has more information on variables.
Tasks can be carried out based on any combination of:
- The application which is currently running
- The time () e.g. at 2:30, after 10pm, every 20 minutes until 3am
- The date () e.g. Sundays and Mondays, 30th of every month, the 10th of June or December
- The geographical location () e.g. at home, in the office
- The state () of something e.g. whether the device is docked
- When an event occurs ()
- e.g. an SMS arrived, battery is full, headphones connected
- the device is moved in a gesture e.g. it's tilted 90 degrees and back
- a notification is clicked.
- When a Widget or Shortcut is clicked, or a Timer Widget expires on the Android home screen
Here are the application, time, day location and
event (code select/event edit)
context configuration screens:
State Contexts represent a continuous hardware or software state. The following are available:
Airplane Mode, Bluetooth Connected, Calendar Entry, Display State / Orientation, Docked (Any/Desk/Car), Headset Plugged (Any/Mic/No Mic), Call (Incoming/Outgoing), Keyboard Out, Light Level, Media Button, Missed Call, Mobile Network (Any/2G/3G), Orientation (Face Up etc), Proximity, Power Any/AC/USB, Profile Active, Proximity Sensor, Signal Strength, Task Running, Unread Text, Variable Value, Wifi Network, Wifi Near
For the Event Context, around 50 events are currently available, divided into 10 categories:
- Date/Time: Alarm Clock, Alarm Done, Date Set, Time/Date Set, Timezone Set
- Display: Off/On/Unlocked
- File: File Closed/Deleted/Modified/Moved/Opened/Attributes Changed
- Hardware: Camera Button, Search Button Long-Press, Card Mounted/Removed/Unmounted
- Misc: Gesture, Shake
- Phone: Missed Call, Phone Idle/Offhook/Ringing, Received Text, SMS Send Success/Failure
- Power: Battery Changed/Full/Low/Overheating
- System: Device Boot, Device Shutdown, Device Storage Low, Locale Changed, New/Removed/Updated Package, Wallpaper Changed
- Tasker: Monitor Start
- UI: Button Gadget Clicked, New Window, Notification, Notification Clicked, Zoom Click
- Variables: Variable Cleared/Set
- 3rd Party: Email Received (K9), Gentle Alarm, Kaloer Clock, OpenWatch, Reddit Notify, Screebl, Widget Locker (Locked,Unlocked,Hidden)
Some events have parameters e.g. you can specify the number of the SMS sender to send a response to so as to be able to react to different numbers in different ways.
For some events you can also control the priority which
Tasker receives them at, and whether other applications
should receive them afterwards.
In this example, the Camera button is blocked from being
sent to other applications.
A gesture is a particular movement of the device through space e.g. jab it forward, tilt to the left and back.
Tasker allows you to record any gesture you like and link it to any Task just like the system-generated events
Unlike some implementations, you don't need to do anything to initiate capture of a gesture, Tasker will automatically
enable monitoring for gestures in the contexts in which you define it.
The action Notify can permanently place an item
in the system notifications pulldown.
These items are then always available, whichever application
you are in.
When a Tasker notification is clicked, it generates a
Notification Clicked event which you can then use
to do anything you like. In the examples above, to show
a brightness slider or a settings menu.
A widget is an icon on the home screen. Tasker let's you configure the text,
icon and task that is run (when the widget is tapped) for as many widgets as
you want. That could be
as simple as toggling bluetooth, or as complex as the below example with
multi-layer menus of tasks and simple actions.
There are 22 icon sets available for download with
over 200 icons each. You can also use normal application
icons e.g. to replace home screen apps with Tasker
There's also a selection of built-in icons.
Here's a home screen populated with Tasker widgets.
At the top are two rows of widgets which just load the
corresponding application. The image on the left shows
the Task behind the Metal Detector icon.
The Settings icon calls up the Menu Task on
the left. The top Dialogs item calls up the
submenu on the right. Notice you can go back to the
main Settings menu from the submenu. Also that you can use an image
file as the background for the menu.
The Sound icon calls up a menu task with
various sound control options.
The Games widget calls up the list of games on
the left. From the right image you can see that each
image has a Load App action behind it.
You could categorize all your applications like this
to avoid home screen clutter.
The Run icon is a task that simply runs
Query Action, which queries for an action
and then runs it. This one is very useful from the
home screen because it gives quick access to any
of Tasker's functions. In these examples it can
be used to quickly change screen brightness or
an icon set.
Tasker also has actions which change the icon and/or label or existing icons.
That lets you, for instance, show status by changing an icon in the home screen
when an event occurs.
Finally, since Tasker also has a Set Wallpaper
action, you can change the whole look of the home screen
with a single Task.
The Task on the left changes the desktop to the
image on the right. You could use this to e.g.
change your home screen on different days of the week.
A Timer Widget has two major differences to a normal
On the left is the configuration for a task called Picture which is being used here with a countdown timer widget. On the right the timer is show on the home screen (at the top left of the screen).
- it's task only runs when a countdown timer has
expired, not when it's clicked on.
- it looks different on the home screen
Timer widgets can be paused/restarted/reset by clicking on the time remaining, or reconfigured by clicking on the stopwatch icon.
The Picture task starts when the timer reaches zero. It starts playing some music, takes the photo, stops the music then shows the popup on the left.
A shortcut is just like a widget, except the configuration possibilities are more limited.
On the other hand, a shortcut integrates better in the home screen and can be used in some places that
Widgets cannot, like folders.