I have only tested it with a Samsung Galaxy S2, and am not sure if it will work or be safe with any other models, although I have reason to believe it should work with many Android based phones, as the operating system should be looking for the same commands, assuming that the hardware supports it (that the phone has a 4 pole connection in its headphone socket).
Since upgrading my phone to the latest version of Android (Ice Cream Sandwich, v4.0.3) the controls have changed! My cord now does nothing when the button is pressed, volume up on skip track back, volume down on track forward. If anyone else finds this problem with their phone please leave a comment below with the phone version and operating system version. I am working on a new cable, but I have to try to find the new values to perform the desired functions!
I have tried resistance values from 0 ohm to 1200 ohms and have only been able to increase or decrease the volume on my Samsung Galaxy S2 running Android 4.0.3.
Decreasing volume occurs between 300 - 720 ohms
Increasing volume occurs between 150 - 290 ohms
The original values (used in this Instructable) should still work with earlier versions of Android, and possibly on other phones.
I don't think that this it will work with iPhones, as they look for a series of impulses rather than varied resistance as inline media controls.
I also need to give credit to WideBread.com and author Rich Kappmeier for doing the leg work on this one. Without his article
I would not have been able to get very far with my idea (which as it turns out wasn't very original, at least in this phase).
At one point I forgot to take photos so I made a second cable to get photos of the final steps, thus the different cord colour.
1 x 3.5mm 4 pole headphone jack
1 x 3.5mm stereo headphone jack
4 core cable
1 x 220 ohm resistor
1 x 620 ohm resistor
1 x push button (Play/Pause)
1 x 2 way switch (Skip Forward/Back)
Short length of wire
Sugru or other joining/finishing product