Overview: Headset Button Controller is very configurable, allowing you to play music, change tracks, adjust volume, answer phone calls, start Voice Command and many other things, just by clicking the button on your headset.
Requirements: Android OS 2.1 and up
Turn the button on a wired headset into a remote control for your music player – and much more!
Headset Button Controller is shipped with a powerful default configuration, but you can change almost every action performed. Once you have configured it with your preferences, it runs in the background using almost no CPU. It has been tested with a wide variety of different Android devices and music apps and works with both single-button headsets, and Android-specific 3-button headsets.
Default configuration for single-button headsets (center button for 3-button headsets):
* Single press: play / pause (+ answer call / end call)
* Double press: next track (+ decline call / mute microphone)
* Triple press: previous track
* Quadruple press: previous track (2x)
* Long press: Volume control 
* Press and hold: Fast forward 
* Double press and hold: Rewind 
* Triple press and hold: disabled
All of the above options are configurable to any of the following:
* Play / pause
* Next track
* Previous track
* Previous track (2x)
* Mute / unmute
* Voice command
* Voice search
* Redial last number
* Say current time (Text-To-Speech required)
* Launch app
* Launch shortcut
* Tasker task 
* Switch profile
Additionally the long press options are configurable to any of the following:
* Volume control 
* Rewind 
* Fast forward 
 Requires the app ‘Tasker’
 While the button is held down, the volume is initially reset to the minimum limit (see below) and then raised until the button is released
 Not every music player app supports rewind / fast forward
With a 3-button headset, volume control is also configurable with the left and right headset buttons.
Music app selection
Headset Button Controller controls the currently running music app. You are also able to explicitly specify which installed music app you want to control.
Volume control features
Headset Button Controller remembers the music volume when the headphone is unplugged and can restore it when the headphone is plugged in again.
* Min volume limit: Start volume level of the ‘volume control’ command
* Max volume limit: Ensures that the headset music volume never exceeds this limit
You are also able to control calls with the headset button:
* answer call / end call on single press (configurable)
* decline call / mute microphone on double press (configurable)
* adjust volume during a call (see volume control)
* announce caller name (Text-To-Speech required)
You can also configure Headset Button Controller to automatically answer an incoming call after a configurable delay.
Headset plug in / out
You can configure an action to be performed when the headset gets plugged in / out.
You can create different ‘configuration profiles’ which you can switch between. Add a widget or a shortcut to your home screen to easily change your profile. It is also possible to switch profile from the ‘Tasker’ or ‘Locale’ app (Locale plug-in). All settings can be backed up on SD card.
What’s New in Headset Button Controller version:
NEW workaround for the HTC redial problem: Automatically adds a dummy call with unknown caller to the call list. This prevents that double click triggers redial (see advanced options).
* Jelly Bean: The long press commands of the center button are reserved by Google Now and cannot be configured with this app.
* Headset Button Controller cannot support the separate volume control buttons on the iPhone headset – this is a limitation of the Android framework.
This is the full version of Headset Button Controller. To check if this app works with your phone / music player correctly, we suggest you first install the trial version of this app before buying.
Download Instructions: Headset Button Controller 6.8 (Android)