If you just started reading this directly and didn’t read my “what is Tasker”, please read my short post: (http://blog.vpetkov.net/2011/05/10/androids-best-app-tasker-visual-programming-and-automation/)

If you are running ICS 4.0, please read: (http://blog.vpetkov.net/2011/12/27/tasker-ics-android-4-0-blackberry-sound-profiles)

Don’t let the length of this post scare you — I just wanted to provide the technical/developer details. You can get this to work in less than a couple of minutes by downloading the zip file and ONLY reading the “GETTING STARTED” section.

 

GETTING STARTED:

0.) Please download the zip file bellow if you haven’t done so already – Blackberry_Sound_Profiles_for_Android.zip

1.) First, if you haven’t already, install Tasker (you can use the Android Market, or the guys’ website). You can play with it for 7 days for free.
2.) It will create a “Tasker” folder on your SD card. Under that you will find “tasks” and “profiles” folders (if they don’t exist yet, create them).
3.) Download the zip to your computer, mount your phone’s SD card and go into the main “Tasker” folder under the sdcard. If the file ends in .prf, put it in the “profiles” folder. If it ends in “.tsk”, place it in the “tasks” folder. Unmount, disconnect your phone.
4.) Now that you have them, you need to load what you want/need into the program. Open up Tasker (program), hit Menu, and go to “Profile Data”. Do a “Import One Profile” or “Import One Task” select one of the “tabs” (Profiles, Tasks, Scenes), and hold it — an “Import” option will present itself, which will let you import a Profile or Task (or not relevant here – a Scene). This is because Tasker changed the way profiles and tasks (and Scenes) are imported . As soon as you select that, you will see all the files in the directory that you copied. Now you can import whatever you want.

You should import the “Volume Buttons” Profiles (note: this is a profile), at least the “Normal” and “Sleep” tasks (note: these are tasks). The volume buttons profile is honestly a life saver since any time you tap a volume button, it will actually restore to the sound-profile task you have selected.

Now to use them,

5.) Hold down on the home screen, select Widget (for ICS 4, Widgets are created by going to Applications, and shifting over to widgets), select Task. It will show you a list of your tasks. Select “Normal” for example. It will show it to you (in case you have to make any changes last minute — don’t do it this way, always make them in editor), now select the green check and you are Done! You can now use it as a “program” on your home screen. Add at least 2 this way, and select them. Wait 1-2 seconds. You will see how it select/enables each, and then after it enables it, hit the volume keys on purpose, and then wait 1-2 seconds again to see how it restores it.

END OF GETTING STARTED – THAT’S IT! You have it working!

 

 

Ahh, you’ve continued reading and you haven’t skipped this…Clearly you care about some of the theory…

One of the biggest problems with Android is the sound profiles. I will start off with the main sound profile BUG:

Try setting your Settings -> Sound -> Vibrate to “Only when in Silent”, and then hold the power key, change the “Silent mode” to ON. Now hold the power key again, and change the “Silent mode” to OFF. Check your Settings -> Sounds -> Vibrate mode — it is changed incorrectly to “Always”. This renders the built-in “sound profiles” completely useless.

Here are bug reports that are all for the same thing: Issue 20463 and Issue 13732

UPDATE: Please note that Google “sort of” fixed this, to a point, where we can now correctly implement the functionality using Tasker at least. It’s not there by default, but the “Silent Mode” now works for on (sleep), off, and vibrate, and there’s a separate toggle-able Ring+Vibrate feature.

Pretty much, half of these are the same issue. The main problem is that the Silent and Vibrate options for android, are really one single “Silent Mode”. The problem arises because Sound -> Vibrate settings only apply for “Silent Mode”. This means that you cannot have a completely silent profile and a vibrate only profile, and a “normal” profile. This is the most evident to anyone coming from a blackberry, where the sound profiles are flawless. I’ve read thousands and thousands of questions asking “how do I get sound profiles like on the blackberry”. Personally, this was the first thing that drove me crazy when I moved away from the blackberry.

Most people default to using a program which creates “Profiles” — setting bundles which simply toggle each Sound option (In-Call volume, Media, Ring Tone, Notification, Alarm, and System). The best one I’ve seen is AudioGuru, which is great, but it does lack some customization. The one additional step that most programs lack also is some sort of a guard for the volume buttons which toggle the ringtone.

My goal when thinking about all of this was to create a solution that was simple, extendable, and complete. The main points I was going after was to have profiles that are completely stand-alone, extendable/fully customizable, and completely scriptable. The end result was what I call “Blackberry Sound Profiles for Android”.

 

First off, here’s the download:

Blackberry_Sound_Profiles_for_Android.zip
(md5: 71d0701ce63a6953a997145c758753c8)

(don’t forget to go to Settings -> Sound -> and UNCHECK “Use incoming call volume for notifications”. Also, Settings -> Language & keyboard -> Android keyboard -> and CHECK “Sound on keypress”)

The logic becomes part of 3 sections. The FIRST SECTION is the Tasker sound profile tasks. These are “stand alone” tasks, which simply encompass every aspect of a sound profile. Let me walk through one of them:

“Normal.tsk.xml”

0.) Set a default icon (used grey star in this case)
1.) Wait – 2 seconds
[note – for ICS 4, there is an extra step in here turning off the Ring+Vibrate fixed feature]
2.) Silent  Mode – off
3.) In-Call Volume – 5
4.) Media Volume – 9
5.) Ringer Volume – 5
6.) Notification Volume – 5
7.) System Volume – 6
8.) Alarm Volume – 7
9.) Set Widget Icon (to %PROFILE – used default grey star)
10.) Variable Set (%PROFILE to “Normal”)
11.) Set Widget Icon (to %PROFILE – used the grey sound icon)
12.) Notify – %PROFILE
13.) Wait – 1 second
14.) Notify Cancel – %PROFILE

Let me clarify some key things:
step #9 is needed in order to clear the old Icon back to a star.
step #10 sets the global variable to the name of this profile
step #11 activates the pressed/toggled widget

I’ve also included a “Sleep” sound-profile task (toggles all down except alarm and media), a “Work” sound-profile task (same as “Normal” sound-profile task, but the notification is less and the system sound is less so the keyboard is not obnoxious), a “Loud” sound-profile task (makes everything as loud as possible basically), a “Vibrate” sound-profile task (like sleep, but has vibrate on), and a “On-Call” sound-profile task (like sleep, but ring tone is low).

I am not sure if you are already picking up what’s going on, but basically, the idea is that you have a few of these sound-profile tasks, and you create widgets on the home screen. They all show up as grey stars. When you press “Normal” or “Sleep” for example, it changes the star to the correct icon (Sound Icon, or Muted Icon), and shows it on your home screen and notify’s in your notification bar (after which, a second later, it clears the notification bar). Now, go through the other profiles to see what they do. They are all pretty much the same, except the Vibrate profile, which uses step #2 to select the official Android “Silent” mode, with a Vibrate outlet.

Now, the SECOND SECTION is a single Tasker task called “Sound Profile” which has one step:

1.) Perform Task – %PROFILE

And now you see why step #10 from section one is needed. When this task is called, it will change the current Sound profile to the global variable (%PROFILE). Please import this task too. Why is this needed you ask? Because of my clever hack in the THIRD SECTION:

Here is where you have a Tasker Profile. It is called “Volume Buttons”. The basic logic is as follows:

1.) If Variable Set %VOLR (ringer volume), then call the “Sound Profile”

This essentially achieves a volume-reset every time you accidentally hit the volume up or down keys. Now you can see why the “Wait – 2 seconds” was needed. The key part about this is that it uses your global variable, and it resets your volume to the last Sound profile that you selected. Great huh? Please make sure you import the “Volume Buttons” profile into Tasker.

At last you are Done! You now have individual Tasker tasks which you can make widgets out of. I have the 3 that I use the most – Normal, Silent, and Work (work being a bit quieter on the notification and system sound for the keyboard noise) on my main home screen. Then I have the Loud, Vibrate, and On-Call on another screen since I use them less often.

OPTIONAL FOURTH SECTION FOR EVERYONE WHO NEEDS AN ON-CALL PROFILE

For the people interested, the ‘On-Call’ task works in a super elegant way: it silences everything except the ring tone (which it lowers), the alarm, and the media volume. The media volume is the key here. Let’s say you want SMS notifications but not emails while you are on-call. They both use the “notification” system, so there’s no way to do this by default (yet another ex-blackbery annoyance). What you can do is write a Tasker profile which interprets a “Notification Messaging, *” notify, (you can check the time if you are only on-call during the night or day) and then have the action for the task for the profile call the “Music Play” action which simply plays your SMS sound as an MP3. This essentially lets you isolate one application from another, by using the fact that you can play the selected notification through the media outlet. Beautiful Eh?

I hope all of this helps people out.

UPDATE – Added “One Ring” Task and Profile Monitor

I’ve updated the zip pack with two additions: a task which will provide you with a “One-Ring” sound-profile task — it’s basically the normal profile, but it brings the Ringer Volume to 0, and it increases the Media Volume up to 11. Also, I’ve added a “One_Ring_Monitor” profile, which intercepts calls, and plays a music file (mp3, wav, ogg, others…) — giving you the ability to play a notification — thus a single beep/sound.


70 Thoughts on “My Tasker program – BlackBerry Sound Profiles for Android

  1. @Ventz
    Thanks much Ventz! As you said, the 1st part was embarrassingly simple, in the “vibrate” task, I just took the “alarm” volumn to 0.

    As for #2, I believe I have exactly the behavior I want now. (to explain for others), I created 1 new task and 2 new profiles.

    The new task is named “VibratePattern” and it is an “alert > vibrate pattern” where i specified the pattern of “100,500,500,500,1500,500,1500,1500” [the format for any vibrate pattern you want is “pause time, vibrate time, pause time, vibrate time, etc. – all in milliseconds], I then selected the “if” option with,”%PROFILE” matches “Vibrate”. This (as you suggested above) ensures that the vibrating pattern will only happen if the “vibrate” profile is the current profile. If in any other profile, it won’t vibrate (I think this is true anyway, it seems to behave that way).

    The two new “profiles” I created enact this vibrate pattern for (1) SMS/MMS and (2) new notifications (eg: calendar alarms). I could’nt figure out a way to do both these things with one profile, so I used two profiles but they are basically the same. The 1st profile is named “SMSvibrate” and it is a “event > phone > received text” which triggers the task “VibratePattern” outlined above.

    The second profile, for the new notifications, is named “NOTIFYvibrate” and it is an “event > IU > notification”, and also triggers the “VibratePattern” task.

    As I said, with limited testing tonight, the behavior seems to be, when the “vibrate” profile is active, both text messages and notifications trigger the custom vibrate pattern, the other sound profiles appear to act ‘as normal’ without the vibrating pattern. More testing will verify this but it appears to work correctly.

    Thanks for all your help and hard work Ventz!

  2. Wayne on March 7, 2012 at 12:14 pm said:

    Aaron & Ventz,

    I’ve been trying to figure it out a way to modify the SMS notifcations. Essentially I want the received text message notifcation to be different from other notifications. For example, while on vibrate I want recevied text messages to vibrate 7 times and everything else (emails, calendar events, etc) to do the standard two vibrates. While on other sound options (Loud for example) I want texts to either make a different sound than other notifications or play the sound more times.

    The idea is that I want to be able to distinguish without looking at my phone if I’ve just received an email or a text message.

    Also if you know of any place that describes the difference between a profile and a task, I would appreciate a link.

    Thanks!

  3. Ventz on March 7, 2012 at 2:42 pm said:

    Hi Wayne – Let’s start with the basics: profile vs task. One mistake I made is calling the sound stuff that I wrote “sound profiles”. I realized that this was extremely confusing, since they are actually tasks. I tried to correct this retroactively by calling them “sound-profile tasks”. Anyway, here is the difference:

    * task = a set of actions. You can think of it as a function. It runs. The offiicial definition is here: http://tasker.dinglisch.net/userguide_summary.html#tasks.html
    The developer defines it as “A task is simply a set of actions which are performed one after the other.”

    * profile = a condition upon you execute a task. The task can be an existing task (with a name that you load), or a temporary task (one that you write and attach, that cannot be used anywhere else). The official definition is here: http://tasker.dinglisch.net/userguide_summary.html#activity_main.html
    The developer defines it by stating that “The profile links contexts (conditions) on the left to tasks which should be run on the right”

    Now, about the vibrate: see the comments before this one. Someone else asked this, and I provided an answer. To the best of my knowledge, that’s the only way to do it. When it comes to getting the sound to have a different notification, you can set up a Profile that looks for an incoming text. At this point, you can play any sound that you want. The EXACT solution that you need is available in my Speak SMS post (http://blog.vpetkov.net/2012/02/20/speak-sms-over-the-head-phones-only-when-they-are-plugged-in/). Take the first part — the part that looks for incoming Texts. Instead of speaking them, simply add a Task which plays audio. Good luck, and let me know if you need any other info/clarification.

  4. Thank you VERY much. This has been most helpful.

  5. Constituent on May 3, 2012 at 9:14 pm said:

    This is great – I’ve just started to really miss BB profiles at the same time that I’ve gotten into Tasker. (So, for example, my phone speaks the caller’s name if one of my favorites calls when the ringer is off. I like that exceptions like that should still work on top of these tasks, and, more for Tasker practice, I rotate wallpapers from a directory every two hours.)

    Here’s what I’m going to try to do this weekend: create a Tasker scene so that the available profiles are listed in one pop-up menu, instead of needing a separate widget for each. I’ll have to see how this changes from the way you’re setting icons.

    Fantastic work, thanks for sharing!

  6. Constituent on May 4, 2012 at 1:41 am said:

    @Constituent

    Oh, this is so much simpler. Initial version: at boot, Tasker creates a permanent notification that launches a menu of the sound-profiles when clicked. For now, the menu items are hard coded, but I’m looking into dynamic menu generation based on pattern matching of coded task names.

    Or not. I think I like the ones I have (from you!) and I’ll just add a “Custom” one. Wonder if that could launch a further menu to allow dynamic setting of the vars – easier than finding them in the system menus. Again, or not. Works great!

  7. Ventz on May 4, 2012 at 8:02 am said:

    That is actually a really good idea. Check out my “Timed Profile” — that uses a scene. It might be a good starting point. You will really just have to get rid of the slider and make it a drop down/selectable, and from there hook it into the apply/ok button.

  8. Ammar on July 9, 2012 at 7:13 pm said:

    This is great. Is there a profile for phone calls only? Where it will only vibrate for phone calls, and silent for every other notification?

    Thanks

  9. Ventz on July 9, 2012 at 7:51 pm said:

    Ammar — I think simply setting the notification sound to 0. Since notifications are used for everything BUT phone calls, I think that would do it. On top of this, set your setting a vibrate type profile.

  10. Thanks for the nice tutorial, I’ve been using it since December and it worked flawlessly.
    Since I upgraded to the Galaxy Nexus with ICS 4.0.4 and the new Profiles (from January) I can’t get it managed to get the NOTIFY permanently in the status bar. The permanent checkbox under NOTIFY is checked but it won’t stick.
    Does anyone else have this problem and is there a workaround?
    Thanks in advance!

  11. Ventz on July 10, 2012 at 9:09 am said:

    Tim — very happy to hear that it’s useful. I was honestly completely surprised as to how many people have wanted/used this. It started simply because I made the jump from a blackberry to android (for the 3rd time), and realized that the sound profiles were simply non-existent. It really annoyed me how every time you accidentally hit volume, it ended up changing your ring profiles.

    Anyway, I don’t have a Galaxy Nexus (waiting for the next release since I got the Nexus 7), but my assumption is that the “Notify” and “Notify Cancel” are not matching in terms of name. Specifically, the “TITLE” parameter of the %PROFILE name. That’s the only thing that could be doing it. That, and if you have a Cyanogen release which makes alerts permanent. I guess the other possibility is that the Notify cancel code is different on the Galaxy Nexus, but that would be very surprising since it’s still ICS 4.0.4.

    To test this out, try writing a very simple task with just “Notify” where the title is ‘hey’, and then a “Notify Cancel” where the title is ‘hey’. Run it straight from tasker with the little play button and see if that works.

  12. Thanks for your detailed answer! Btw your script saved my life many times because I’m also hitting the volume buttons in my pocket regularly! 🙂

    The funny thing is: I just restored my old version of tasker with Titanium Backup (and your “old” Script) and it works again. The notification is sticking and also the profiles work without any problems!
    Since I’m not having a lot of time due to exams I won’t play around with the new script and test whats causing the problem, but maybe in two weeks when I’ll switch to Jellybean 🙂

  13. Brian on July 14, 2012 at 7:48 pm said:

    Ventz I would like to know if you have a detailed setup for ” auto disable keyguard when at home ” the one in the profiles does not have a download available and the instructions are missing something. I have spent a couple of hours on this and getting frusterated. Any help would be very appreciated. 🙂 thanks

  14. Ventz on July 14, 2012 at 9:04 pm said:

    Brian – The two ways to accomplish this would be to use WIFI or “Net” location (vs GPS which would be very heavy on the battery). Since WIFI, like GPS, will burn the battery too much, let’s use Net location, which triangulates from the Cell towers.

    Start by creating a new profile that’s “Location” based. Uncheck the “GPS” button, so that ONLY the ‘Net’ button is checked. This would give you an accuracy of about 1200meters (which is ~4000 ft or ~0.75 miles). You can get this as low as ~500meters, when using 3G. Select a ‘2km’ radius (~1.25 miles). You could play it safe, and select ‘3km’. Now select the cross hair with the circle in the bottom right and wait a few seconds. Select it again, and wait a few seconds. Select it again, just in case. This will zero-in on your location. Obviously, you want to do this when you are at home. NOTE: You might have to do the locate find before you can set a 2km radius.

    Now, the next part would be creating/attaching a Task. The problem arrises here with the fact that Android 4.0 and above changed the way the key guard functionality works. You can ONLY toggle the key guard if you have password locking enabled. This is a bit annoying IMO since I kept my phone without a password most of the time (during work for example) and manually toggled it on when I left work. Anyway, so assuming you have a password (numeric) set on your phone, the Task would look like this: Display -> Keyguard – Set ‘Off’. That’s really it. At this point, you can OK/SAVE. Go to the Tasker “Profiles” tab, and select the green right pointing arrow for the Keyguard task and select “Add Exit Task”. This will get picked up when you negate the event — aka, leave the designated zone. Repeat the “Task” steps -> Display -> Keyguard, but then – Set “On”. This way, as soon as you leave your house, you will lock up the key guard. Let me know if this makes sense.

  15. TaranQ on October 3, 2012 at 3:51 pm said:

    Great idea but I was thinking about putting the sound profile selection in a popup menu. Don´t want to waist precious screen space with al sort of widgets. Maybe even from the taskbar pulldown. In this area I love to refer to Llama app that does a great job in selecting/settings sound profiles. Wish we could do this in Tasker, especially the part of identifying the cell’s belonging to a certain location.

  16. Taran – You can do that. With the creation of the Scenes in tasker, you can create a pop-up menu that you select. You can even create a pulldown menu which when selected will open your “pop-up” scene. I am not familiar with the Llama app (i’ll check it out). You can definitely do the cell belonging to a certain location.

  17. this sounds really useful. I am like many others new to android and upset with the lack of a blackberry like sound profile manager. I have read this twice. but I am not sure if I will be able to do it. seems to have some sort of coding stuff to do and I don’t want to mess up my phone, took me too long to get it. are these instructions as simple as they can get??? need help for an amateur please

  18. Jay – this is very easy. Once you have the app, you can download the pre made profiles. Even creating your own is really easy and does not require any coding. There is a 0% chance of messing up your phone. No matter what you do, if you completely mess up, you can always deactivate the profiles (or even uninstall the app). Think of this as something that you activate — for example, in a “if THIS happens, do THAT” format, so the “that” part (which is some set of sound changes you would normally make by hand) are all set in one shot when the “this” condition applies (which is either a manual set, or a certain time, or some location, etc).

    Ive gotten used to Android not having this feature at this point, but I am too really surprised.

    Good luck.

  19. first off thank you for replying to me so quick recently because I noticed the comment before me was from a couple years ago. good to see you are keeping track of your work.
    now I am having some problems. let me list them for you. because I tried it but failed. so I uninstalled and deleted all things related and started over from the start.

    1. I could not get tasker from play store due to the “not available in your country” saga. so I got it from aptoide. the version I got is 4.7b1. when I was checking on play store to me it said version 4.6. so not sure if this is an issue.

    2. tasker did not make a folder on my sd card. and it actually took a few attempts before it made the folder on the phones device as well. so I manually created the folder on my sd card. I did try loading the items from the blackberry sound profile zip you provided from both the sd card and from device storage

    3. I receive errors when trying to upload either tasks or profiles. for tasks I get Error: Bad packed data format. for profiles I get Error: no profile found. (it is worth noting that only the one_ring_monitor imported without an error)

    I have a Samsung galaxy S5, model: SM-G900T. android version 4.4.2.

    I would greatly appreciate your help in trying to rectify this issue for me.

    Thanks in advance.

  20. Jay,

    I am always shocked when I hear from someone about how difficult it is to pay for software in countries outside of what a vendor has deemed “worthy”. It is simply ridiculous.

    #1 – Tasker went through a few major changes along the way, and after I created/posted the profiles, I kept up with it for a few versions. After ICS 4.0 was released, Google changed a few major things in regards to “Sound”, so Tasker responded with a new version. I posted the profiles for that here: http://blog.vpetkov.net/2011/12/27/tasker-ics-android-4-0-blackberry-sound-profiles. Make sure you download and start with those profiles first.

    I remember that at one point they did a big re-design of the UI, for which I updated and re-posted some steps. I think up to Android 4.2 and 4.3 I kept up with both the latest Tasker version and some changes in the OS. I haven’t upgraded anything since. But either way, it should be mostly the same to update the steps/profiles. The core idea never changed, and if you look at this post (http://blog.vpetkov.net/2011/05/10/my-tasker-program-blackberry-sound-profiles-for-android/), look at the steps 0-14 listing what each “step” actually is in the profile.

    As for the version, I think the version you have is still a beta. The latest “stable and supported” is: v4.6u3, so go with that one.

    #2 – I’ve heard this from others — not sure if this happens across different OS/versiosn, or if it’s based on how the /sdcard is presented, but no matter how you install the APK, you need to make sure that the software is installed to the PHONE (not SD card) for ALL of the things to work, and the “/sdcard” (or equivalent for phones like the Nexus4/5) need to have the “Tasker” folder. Inside that folder, create a “profiles” folder and a “tasks” folder.

    #3 – Look at this post: http://www.reddit.com/r/tasker/comments/2oa9ev/help_i_get_an_error_for_every_thing_i_try_to/
    I’ve heard from people about the first thing (project vs profile vs task). Just double check you are important the correct “thing” using the correct method. I am not sure about the downloaded APK thing. Maybe it’s true, maybe it’s not. If it is related to the downloaded version, I would suggest getting a VPN to the US for a day, and downloading the Play Store app + just registering it. Once it’s registered/validated, you don’t need to be in the US.

    The other suggestion here, try an older version of Tasker (just to eliminate that part). For example, something like v4.4, v.4.3, and v.4.2.

    Before you try a different version though, take a look at the LOG that tasker produces, and see if it’s complaining about something specific. It might be something small (again, like importing a profile as a task, etc.) Or, maybe the version is really not compatible w/ that profile, and then you can create a profile+task yourself — this is very easy, I promise.

Comment navigation

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Post Navigation