[Android General] brandall:
Using Tasker for your SMS Notification Management

What you will learn

Basic pattern matching

IF actions

Profile Aim

Play individual notification sounds for chosen contacts.

Simple Preparation

The included icons in Tasker are pretty basic. Head to this link on the Wiki and download the ones of your choice, unzipping them into the folder sdcard/Tasker/.icn. The BlueOrbHD are my personal favourite…

Make sure you have your notification sounds saved in a folder sdcard/Notifications. If you are short of notification sounds, check out this link for a download. Place them in the notifications folder on the sdcard.

Profile and Task Explanation

As we are going to get Tasker handle our notification sounds, we need to disable them being handled by Android. From the home screen, select menu/settings/Sound/Notification ringtone and select ‘Silent’. If you didn’t do this, the standard notification sound would play as well as the tone we are to set up in Tasker.

In Tasker, select ‘New’ and then ‘Event’. Under ‘UI’ will be the option of ‘Notification’, select that. Leave the ‘Priority’ as normal and do not select an ‘Owner Application’. Under the ‘Title’ field, type ‘*Voicemail*’ and select done. You may then get a pop-up requesting that Tasker be given permission for ‘Accessibility’ – tick the box as we want to give Tasker permission to do everything automatically!

To clarify, we need Tasker to recognise that a new voicemail has been received and play a notification sound. There is currently no specific option for ‘Voicemail Received’ built-in to Tasker, so we are simply going to look for the word ‘Voicemail’ appearing in the notification bar and the profile will be triggered from there. The ‘*’ you put at the beginning and end is a ‘wild-card’ function, so that if for example the notification reads ‘You have a new Voicemail to listen to’ the text before and after the word ‘Voicemail’ will not prevent the context from triggering. Without the ‘*’ ONLY the word ‘Voicemail’ on its own will trigger the profile.

Once you’ve selected done, you will be prompted to select an existing Task from the list or select ‘New Task’ from the top. Select ‘New Task’ and name it ‘VoicemailSound’. Once inside the task, click on the icon button and select a suitable one, then click on the + button, select ‘Tasker’ and then ‘Stop’ and then ‘Done’. Click ‘Done’ again inside the Task and then click ‘Apply’ in the main Tasker screen which will close Tasker.

Q) Why did you just exit out of Tasker?

A) All too often you can make a mistake when creating a profile/task or something can happen that doesn’t apply the changes you’ve made. Applying out of Tasker in this way will ensure that no matter what happens, your created context, task name and icon are saved. You only have to accidently hit ‘cancel’ out of a task that you’ve spent 30 minutes creating to see that NOTHING remains of it, including the triggering context! It's good practice to this as standard every time!

Load up Tasker again and select the ‘Tasks’ button. From the list select the previously created ‘VoicemailSound’. Click on the + and select ‘Media’. Select ‘Music Play’ and hit the magnifying glass. Navigate to the ‘Notifications folder’ you have (or have created in your preparation) and select the tone you want. Ignore ‘Start’, ‘Loop’ and ‘IF’ and select ‘Done’.

Back in the Task screen, you’ll have a ‘Stop’ action and then the ‘Music Play’ action. If you left the task like this, it would simply stop! So, click and hold on ‘Music Play’ and once it’s given a short vibrate, drag it above ‘Stop’ so it’s in position 1. Click on ‘Done’.

There you have it! Tasker will now play your selected notification sound when you have a new voicemail!

Q) But hold on… (<-- I’ve decided that is going to be my tagline), what happens if I’ve set my device to silent? Will it still play the sound?

A) YES. Tasker is God on your device and will ignore and override almost all inbuilt settings due to the permissions you give it.

So, we need to deal with that.

From the main Tasker screen, click on ‘Tasks’ and select ‘New Task’. Name it ‘TEST TEST TEST’, add in the ‘Stop’ action and give it an icon as detailed above and save all the way out of Tasker to make sure it is always there.

Go back in, select the task and click +, select ‘’Alert’ and ‘Flash’. In the ‘Text’ field, type %SILENT (it must be in capitals) and select ‘Done’. Drag it above the ‘Stop’ action and press the ‘Test’ button to run the task. A pop-up will appear on the screen saying either ‘off’, ‘on’ or ‘vibrate’. If you want, you can change your device to vibrate and confirm the inbuilt variable %SILENT registers the change by pressing ‘Test’ once again.

Exit out of TEST TEST TEST (you’ll be using that task again a lot when creating your own profiles!) and head back into VoicemailSound. Click and hold on the ‘Stop’ action in position number 2 and drag it back up to position 1. Click on it so it opens and tick the ‘IF’ check box. When an IF statement is present in any action, this action will ONLY run if the IF statement is ‘true’. IF it isn’t true, Tasker will ignore the action and continue on to the next one.

Click on the label icon which will bring up a list of Tasker’s inbuilt variables (and any you have already created that are presently populated) and scroll down to click on ‘Silent Mode’. %SILENT will be populated in the first box. Next to it, click on the ‘~’ icon. This is the ‘condition’ of which you are comparing to %SILENT. As we are looking for the text of ‘on’, we need to select ‘Matches’ and then manually type ‘on’ (in lower case!) in the end box. Select done and you’ll be returned to the task screen showing that the ‘Stop’ action now has an IF action showing in it.

To recap, as the task currently stands, it will start on the context of a notification appearing in the notification bar with the word ‘Voicemail’ somewhere in it. It will then trigger the task VoicemailSound which will first check to see if the device is in silent mode. IF it is, it will simply stop. IF it isn’t, it will carry on to action number 2 and play the notification sound! Sorted!

Q) But hold on… What if the device is set to vibrate only? Will it still play the sound?

A) A good question! YES, it will… We need to deal with that next.

You probably wish to have a vibrate alert when you receive a voicemail anyway, so let’s assume you do for now and continue. Go back into VoicemailSound and click on +, select ‘Alert’ and ‘Vibrate Pattern’. Click on the question mark at the top and read the notes about this action, which will explain how it works with a wait time and a vibrate time in milliseconds so you can personalise it to your hearts content. To keep it simple for now, enter ‘200,200,200,200’ in the ‘Pattern’ field, which will equate to two short vibrates with a small pause between them.

Select ‘Done’ and back in the task you will now have Stop, Music play and Vibrate pattern in that order. Let us ponder for a moment. First we need to make sure that the device is not on silent. That is done in action 1 and it will stop IF it is – sorted. Next we need to make sure that the device isn’t only set to vibrate, BUT, whether it is or not, the ‘Vibrate Pattern’ we’ve just created is good to go! So, drag it to position number 2! All we have left to do now is STOP the ‘Music Play’ action IF the phone is in vibrate only mode… Did the bold clues help you!? I hope so… There are actually a number of ways we could do this. We could tick the IF statement in the ‘Music Play’ action and set it so %SILENT ‘does not Match’ ‘vibrate’, but let’s keep it simple and just add another ‘Stop’ action before music play, with the IF statement ticked and %SILENT ‘matches’ ‘vibrate’ (in lower case). Did you add that in ok and drag it to the right position? Good.. (Sorry if I sound patronising, just trying to leave no stone unturned).

Ok, so there you have it, Tasker is going to consider if the phone is set to silent before it vibrates and consider if it’s set to only vibrate before it plays the notification sound. For good measure, I always add in another ‘Stop’ action at the end of every task I create. Sometimes you’ll have testing actions such as ‘variable flash’ below this stop that you can drag up (to use) and back down (below the stop) when you need to.

Let’s hurry on to the personalised SMS sounds!

In the main Tasker screen, select ‘New’ and then ‘Event’. Under ‘Phone’ will be the option of ‘Received Text’, select that.

Under ‘Type’ leave it as ‘Any’ so it includes SMS and MMS. Click the magnifying glass next to the ‘Sender’ field and select ‘A Single Contact’. Scroll down, select the mobile number of the contact you wish to have a personalised notification for.

But hold on…. Before you select ‘Done’ to continue, click on the magnifying glass again and select another contact. After you have selected it, you’ll notice that the two contact names are now listed and separated by a ‘/’ with no spaces. This is your first introduction to pattern matching and lets Tasker know that the profile should be activated by the receipt of a text from either of these contacts. Once we’ve done the basics of this profile, you’ll need to go back and add in every contact you want to have a personalised tone for.

After you’ve clicked ‘Done’, select ‘New Task’ and name it ‘TXT-Custom’. As suggested above, select a suitable icon, add in the quick stop action and save out before returning to the task again.

Learning from the voicemail task above, we know that we need to consider the states of vibrate and silent, so add those in first. A ‘Stop’ in action #1 IF %SILENT matches on and a universal vibrate pattern in postion #2. Action #3 will be another stop action IF %SILENT matches vibrate and now it’s time to start creating our individual SMS sounds. Click on + and select Music Play. Using the magnifying glass, select the SMS tone you want for a certain contact. Check the IF button and click on the label icon. Scroll down the variables until you see ‘Text From’. Clicking on it, you’ll see that the first box is now populated with the inbuilt variable %SMSRN (which stands for SMS received name). Select matches and then manually type in the name of the contact you wish this tone to apply to. You of course have to make sure it exactly matches the format it appeared in when you originally selected the contact using the magnifying glass in the triggering context. Select ‘Done’. Repeat this process (creating a new action every time) for each individual contact you wish to have a personalised SMS sound for. It would be a good idea to save out of the task and out of Tasker every few minutes to ensure that if you do accidently press ‘cancel’ or your phone freezes, your hard work won’t be lost!

Make sure that every personalised entry you create, the contact name appears in the original triggering profile separated by a ‘/’. Sorted!

Q) But hold on… What happens if I get a text from a contact that isn’t listed? Android has been told to be silent, so will no sound play at all for them?

A) YES! Well spotted, we need another profile to account for receiving a text from anyone not in the personalised list.

Create another new profile with a context of a new text message received (new/event/phone/received text). This time, leave all the fields blank and click done. Select a new task and name it SMS-Default giving it an icon and a stop action for good practice. Return back into the task and add in the actions as you’ve done before.

#1) Stop IF %SILENT matches on

#2) Vibrate pattern

#3) Stop IF %SILENT matches vibrate

#4) Music Play (which will be your standard notification for all normal text messages).

Sorted!

Q) But hold on… What’s to stop that notification sound playing if I get a text message from a contact that has a custom sound? Will Tasker not try and play both?

A) YES! Good thinking… We need to set up an ‘exclude list’!

The quickest way to do this is to wait until you’ve finished your custom notification task. Once that’s complete, the context will have all of the contacts listed and separated by a ‘/’ (in the triggering profile). Click on the field and copy the contents to use in a moment.

In the custom SMS task, we’ve already set a vibrate pattern and a custom tone, so we therefore need to STOP Tasker from doing either of these in the default task. Simply add in another STOP task in action #2 (so it’s before vibrate) and tick the IF checkbox. Using the variable %SMSRN matches, paste in the ‘/’ separated names of the contacts and select done!

And now you really are done… Tasker is intelligently managing your personalised SMS notifications, always considering your system sound settings.

Extras

Q) But hold on… I always want to have a vibrate and notification sound if my wife texts. It might be something important…

A) That’s not a problem.

Assuming you’ve set up a custom notification for her in the task TXT-Custom, you can simply drag her individual Music Play action to position #1, so the phone’s state of silent or vibrate won’t be considered. If you want the device to vibrate too, simply add another vibrate pattern action to position #1 or #2 (as long as it’s above the first stop action) and make sure it has an IF statement so it will only vibrate IF %SMSRN matches your wife’s contact.

I hope that helped folks!? If it did, the thanks meter is the only way I'll know! :eek: