Replay: The growing struggle of playback controls via Bluetooth

It is what I use at work, home, in bed, in the shower and everywhere in between to keep me sane and happy. Music makes me better, and since music is such a large part of my Android experience, there's been a slow decline that I've been painfully aware of over the last few years, and especially the last few months.

Sometimes I turn on my Bluetooth headphones, hit play, and nothing happens. And nothing happens a lot more than it used to.

In my early Android days, with Soarin in my pocket (yes, I named my Samsung Captivate Glide) and my first pair of Kinivo Bluetooth headphones (opens in new tab) around my neck, I didn't have to have Google Play Music open, I just needed to hit play on my headphones. In fact, I took a Samsung Galaxy SII out of a drawer, booted it up for the first time in months, paired Bluetooth headphones with it, and hit the play button. And the music played.

Not so much on the current devices in my stable.

Seven devices, seven different experiences. Oh joy.

The HTC 10 just does not to obey Bluetooth controls sometimes, persistent notification for the music app or not. It would rather I hit play on my Moto 360, or on the phone itself. The HTC A9 is just as finicky. The Nexus 5X sometimes won't start music back up with the persistent notification up, but will sometimes do it without one. The Samsung S6 edge will play, but sometimes instead of playing the music app most recently active, it will default back to the pre-loaded Music app.

There's a word that keeps repeating here: sometimes. That's because this is a problem that has a lot of variables: what Android device you're using, what Bluetooth device you're using, what version of Android and Bluetooth your devices have, what music app you're trying to play through, what environment you're in, etc. That's a lot of things to contribute to a seemingly simple problem of buttons not working every time you press them.

So what's actually happening here? Well, the answer gets a little — ok, a lot — technical.

When you press the button, it is interpreted by Android and broadcasted across the system through KeyEvents. The next button on your headset is interpreted and delivered as KEYCODE_MEDIA_NEXT through a KeyEvent. There are a large variety of values that can be pulled up for different buttons, or even for the same button. The play button on most headsets is also the pause button, so the key could return KEYCODE_MEDIA_PAUSE, KEYCODE_MEDIA_PLAY, or the much more likely KEYCODE_MEDIA_PLAY_PAUSE depending on the device and its current state. By the way, if you've ever hit pause and music started somewhere else while what you were watching/listening paused, this is the KeyEvent to blame, because it was received and acted on by two apps.

Once the KeyEvents are interpreted, they still have to be heard by a music app that's listening for media buttons through a BroadcastReceiver intent. After all, an app can't act on a KeyEvent if it can't see it. If something is preventing the receiver in an app from receiving button presses, it can mess up the playback controls in several ways, including the intermittent issue I described above. If an app unregisters its BroadcastReceiver too quickly when it loses Audio Focus (the method through which Android determines which apps can play audio at a given time), then when you pause your music, it may lose stop listening and not hear the button press telling it to start playing again. That's why it's important for media apps to handle both Audio Focus and their BroadcastReceiver properly so that even when a device has lost the former, it doesn't lose the latter.

I just want to play my music...

A lot of this comes down to how well your music app is programmed and which media buttons are being broadcast by your device when you press a button on your headset. This also means that even if playback controls are consistent when you buy a device, they can be broken by app updates or system updates that change how quickly it stops listening.

In the case of apps like Google Play Music, updates breaking things seem to be getting more and more frequent. While most breaks are fixed quickly, others can take months to be fixed. Intermittent issues, such as your music not starting up properly on Bluetooth, can be difficult to log and properly identify, further slowing a possible fix.

If this is in your notifications, your device should be listening for buttons. But it still might not.

If music apps don't have audio focus and aren't running as foreground services (if the persistent notification for the media player isn't there), there's a chance that the Android system (more specifically Doze) or so-called "resource-saving" apps could kill the app to free up memory for other activities. When that happens, hitting play might not do anything because there aren't any receivers open and listening for commands.

Now, just as there are several things that could break your playback controls, there's also options for trying to fix it.

This is not the answer 90% of you are looking for.

The first solution is a bit extreme, but one of the few that users could implement on their current phones today without any root alterations to the software. Using apps like Tasker and AutoInput, we can detect the button-press, suppress the original KeyEvent action, then carry out a more specialized (and more consistent) command aimed directly at one app. For instance, rather than the play button being a generic play media command that could be picked up or ignored by dozens of media services, we could remap it as a play/pause toggle command specific to Google Play Music so that other apps don't start up instead.

This can be tedious to program, and by suppressing the original action and replacing it, we break the native pause button that we may want to use in other apps like YouTube or Netflix. In short, it's not much of a solution for non-technical users or users who use a variety of media apps.

I got a gesture for ya.

Many phones include a bevy of gesture and button actions that you can turn on or off in Settings, like double-tap to wake or double-press Home/power for the camera. While adding Bluetooth controls to this list may lengthen and complicate it, if the Android system were to acknowledge and direct the KeyEvent to a specific app rather than broadcasting a generic signal to whatever receivers are (or are not) listening, we could ensure consistency. We've seen this done on devices before, for example opening Moto Assist turning on a designated music app when it connected to your car's Bluetooth.

Changing the way Android handles media buttons — and deals with button inputs overall, as Bluetooth controllers and keyboards run into problems of their own — could create as many new problems as it solves, but considering the number of places things can — and do — go wrong in the current system, it might be worth breaking the eggs to make a new omelet.

At the end of the day, everyday users don't want to dig into key commands, receivers, and which app has audio focus right now. We want our focus to be on the music itself and where it takes us. And if I can't turn on the music that keeps me sane in loud, crowded places on the first try, I'm not a happy girl. And I'll bet I'm not the only one.

Ara Wagoner

Ara Wagoner was a staff writer at Android Central. She themes phones and pokes YouTube Music with a stick. When she's not writing about cases, Chromebooks, or customization, she's wandering around Walt Disney World. If you see her without headphones, RUN. You can follow her on Twitter at @arawagco.

  • Agreed, Bluetooth playback could be a lot more reliable.
  • As much as I try to enjoy the convenience of Bluetooth, I find myself going back to the wired set up time and time again. Posted via Xperia Z5
  • I stick with wired for the difference in quality, but I can't say I've had any problems with BT connecting or controls. I have a BT mini keypad I use for controlling, and all I do is turn it on and hit the play button on the keypad. Same goes for my Jam Transits when using BT, or the Streambot mini, BT speakers with controls, or the Plantronic Voyager Pro HD. The last unit is interesting in that it will automatically play or pause when you put it on or take it off.
  • Oh boy do i notice this in my car. When i connect sometimes it start playing right away, sometimes i have to open the app manually and sometimes it just goes completely haywire. Wired is still the way to go at the moment atleast.
  • I use an app called Bluetooth Connect and Play. It hasn't failed me once on Lollipop nor Marshmallow. It detects when you connect to certain Bluetooth devices that you can specify and start playing your chosen music app. Basically, I get in my car, start it up, and music starts. Same with my portable Bluetooth speaker, I turn it on and music starts. Highly recommended.
  • Thank you. Posted via the Android Central App
  • What a find! Thanks for the pointer. I've been using it for only 30 seconds, but so far it's done exactly what I'd hoped it would.
  • The is probably more because my phone is still on Jellybean, but it's not even just Bluetooth for me. Wired headset controls and lockscreen controls sometimes work, sometimes don't work, but mostly just take over a minute to respond, in which time I've decided they aren't going to respond and used the notification controls or in-app controls. Then a billion years later it resisters that I did something in the other control, which usually results in my music or podcast playing to an empty room.
  • KeyEvents deal with both Bluetooth and wired button pushes. So it makes sense wired headsets might suffer, too, but I do believe Bluetooth runs into more issues than wired. Posted via the Android Central App
  • I get that exact same problem! It happened on my old phone (Xperia Z2 on KitKat then Lollipop) and on my current phone (Priv on Lollipop then Marshmallow). Drives me up the damn wall because I have no idea how to fix the damn thing without causing other issues (I use Poweramp as my music player) Blackberry Priv
    Nvidia Shield "Portable"
    Xperia Z3 Tablet Compact
  • I'd like to also take this time to stay that Play Music is getting ridiculously glitchy at time and it requires a complete overhaul of its UI. And dark mode. It always needs dark mode. Posted via the Android Central App
  • Yes, yes, yes! For the Love...yes!
    Why, in this world of battery-life-conciousness, does The big G insist on keeping Every iteration bright glaring white!?!
    I mean, ok, it doesn't drain that much more juice, really,,, I'm just saying.. Eventually, (soon-ish here in Pa, anyway) phones will need to be dash-mounted during driving. I already do this. I love having my phone viewable, and not in my hand, or sliding around on my lap. Especially when using maps [which at least has a decently intuitive dark mode].
    But then I'm using my music stream-er of choice [Goog Play Music] and am blinded by the lite!
    {sorry,had to}
    Even the widget is a touch too bright for nite-driving. (I've actually read turnpike tickets by its lite before). Slight wondering, though::: anyone else think this was sorta' intentional on G's part? Y'know, kinda hard getting away with txt'ing while driving when your whole interior is lit up brighter than your headlites..... posted via the AC App on my Note 5, or G Tab s2
  • I use third party widgets for Play Music. Jack's Music widget's transparent style is easy on the eyes, and the Material Music Komponent for KWGT can be any color you want. But short of rooting, it's hard to get Play Music away from volcanic MY EYES ARE BURNING white and orange. If they went back to that purple they had for Prince's death full-time and used a grey backer or black, I would keel over and die.
  • Loved your article. And yes, my GF and I name all our devices. :3
  • Spotify lately too.
    Dark mode would be really nice for amoled devices. I don't know why they went bright colors with the release of a amoled device.
    Also that's why music doesn't resume after getting a call? Posted via the Android Central App
  • I have had a Play Music sub from the beginning, lately it seems that if I pretty play on a song there is a well over 50% chance that my music will straight up not play. It has caused me to grab the 99 cent three month trial of Spotify and so far I love it. I press play and the music plays right away, user curated playlists are great, and while I am still learning the app it is very functional. I love Play Music, and Youtube Red, but so far I am heavily leaning towards canceling my sub altogether and just dealing with ads in YouTube. Edit: Phone is named HeyNongPhone, five points for whoever gets the reference. My Note 4 was named Soggy Nelson, Esq. because it had gotten wet but still functioned and the lady and I were watching DD at the time.
  • Every now and then I like to uninstall-reinstall Play Music (well, uninstall updates, anyway) and clear app data to try and clear up what I can, but Play Music needs a lot of work right now and it doesn't seem to be getting it.
  • HTC ditching their player for Google play was a big misstep to me. The HTC player was rock solid, efficient, and the visualizations were cool as well. I typically use 2% battery on the half hour drive home using the HTC player, but Google's Play Music uses 6% or more for the same trip.
  • My car stereo can no longer play/pause my media. Hasn't for probably a couple of years now. Used to be able to without trouble. All my other Bluetooth devices have no problem with my Nexus 6 in this way.
  • I agree that Bluetooth operation has gotten progressivly worse with the last few releases. About 3 updates (monthly) ago my Nexus 6P began to interact with my Bluetooth devices differently than before. My large Amazon BT speaker now comes on and goes full volume, and the volume can't be controlled from the phone at all on any app. Another speaker, JBL Flip, can be controlled with volumne controls, but it goes full volume on connection even though I've installed an audio app to try and control that (this works on some devices but not on others). I have two pairs of BT headphones, and they continue to work well for some reason. As someone else mentioned, operation in the car is a whole different set of problems. I have a 2014 Accord, and it has a wonky system, but sometimes it auto-plays and sometimes it doesn't. Sometimes it auto plays Doggcatcher or PocketCasts (which is what I want if I "have" to use auto play) but sometimes it auto plays Google Music, even though the car dash readout shows a podcast. It doesn't matter which of those apps I last used, there is no pattern to the disfunction at all. (I really would like to fully disable auto play but that doesn't seem to be possible on either the car system or on the Nexus 6P end of things). Nothing like driving down the roas 2 minutes after starting and having music blast out at full volume, or when I manually have it play a podcast and then it stops that and plays music, sometimes 4 or 5 times...
  • oops
  • You do t drive a Nissan Quashqai do you by any chance? (*Edit* Opps just seen you drive a Honda, wonder if if it the same Bluetooth stack) Near enough the exact same issue I have! Not to mention issues with using the phone via Bluetooth (my favourite being randomly starting the first track on my phone by alphabet, I'm fed up of "absolute beginners" now!) When answering a car and I can't kill the track without killing the call. That said that could actually be a built in safety feature, or a subtle attempt by Google to make me buy an aftermarket Android Auto head unit! Posted via the Android Central App
  • Here, here! (hear?) posted via the AC App on my Note 5, or G Tab s2
  • OMG THIS! I am so sick of Bluetooth not working properly or consistently. I thought getting a new phone would help. Nope. Not at all. Glad I'm not the only one who has these issues! Posted via the Android Central App
  • agree. Bluetooth is so much better on my iPhone 6s+ (and older) vs the various Android phones I've had (started from HTC One X and currently using an LG G3 on marshmallow)
  • I control my songs with my android wear in the car and I use chromecast at home. Posted via the Android Central App
  • I use wear for this as well , but even wear seems to have endless problems now. I actually think the problem is the Bluetooth stack, it seems to get more unreliable every update.
  • Bluetooth itself has issues, but the ones detailed in this article actually related to how physical keys (whether they're wired, bluetooth, or the ones on the device) are being interpreted or ignored by apps because of BroadcastReceiver issues.
  • Agreed. It's garbage for me as well. Even my wired set has been acting up lately.
  • I figure it's probably the quality of my Bluetooth headset but it seems like it needs direct line of site with my phone to keep the music from glitching or straight up losing a connection. Even having it in my back pocket causes issues with playback. I also have a Bluetooth dongle in my car that my brand new phone won't ever connect with on first try. It's so annoying to have to constantly restart my phones Bluetooth to connect. Bluetooth has such great promise but i find the latency issues to be really frustrating. I also hate how my phone doesn't tell me how much battery is left on my headset. This forces me to take a wired pair on my longer runs just in case the battery dies. It feels good to get this out. Posted via the Android Central App
  • This is why I use a dedicated DAP. Posted via the Android Central App
  • Me too. Posted via the Android Central App
  • Bluetooth in Android is broken, to say the least.
    In my old Nexus 5 Google Play Music would start playing automatically upon connection when my car radio was on and on Bluetooth mode, even when the queue was empty. I replaced the Nexus with a new Moto X 2014 (took advantage of the recent $149 offer) and now the Bluetooth disconnects randomly (Android 6.0).
  • My S7 is pretty consistent with my Sony head unit in my truck. However, the GM head unit OEM in my Camaro gets very random - frequently it will pause but not unpause, or only respond to the commands if I physically unlock the phone first.
  • 2nd Pic in the Article: Desolation Boulevard by The Sweet. LOVE that album
  • "And the man in the back said 'Everyone, Attack!' and it turned into a Ballroom Blitz. And the girl in the corner said 'boy, I wanna warn you, it'll turn into a Ballroom Blitz'. Ballroom Blitz!"
  • My question is, I still connect my Moto X Pure Edition through the 3.5mm jack, but hate having to touch the phone to change songs. Would I be able to use Bluetooth for just controls, i.e. changing songs while connected via the cable? Posted via the Android Central App
  • There are bluetooth remotes out there that will just register the media keys without actually taking the media output away from your wired headset (but the easier solution would still probably be to just by a used Android Wear watch and control it through the notification on there).
  • Yes, i have a SBH20 sony bluetooth, and my s6 edge have a option to "route audio", so the audio go through 3.5mm on my phone, and i can control the tracks from the tiny bluetooth adapter (sbh20). I don't know if works on stock Android
  • This article. My Droid Turbo is generally very reliable with Bluetooth playback controls but the few times it does not work, it's frustrating. Posted via the Android Central App
  • For the most part, "Android" proves over and over that it simply doesn't care about music lovers. There's also no decent music player.
  • I use an app called Media Button Router. Its an old app, but it works for me. Posted via the Android Central App
  • Oh man did this article rake the coals. Turns out I'm still irritated by Bluetooth controls. Wired controls need some work too. Universal 3 button support or else not allow Google Now to hijack the long press for voice commands. As for Google Play Music, navigation definitely needs some work. There no way playlists should be so buried. And the addition of podcasts was totally underwhelming. Maybe there's more in the pipeline for podcasts and the rest, one can only hope. It's long overdue.
  • Oh, my God - trying to stream music via Bluetooth using an Android phone is HORRIBLE, and almost impossible! I thought it was maybe just my phone, but now I see the problem is widespread (and, I'm not sure if that's comforting or even more disturbing)! Here's my situation: I have a 64GB Google (Motorola) Nexus 6, with almost 30GB of music on it. I drive a 2002 Ford Mustang GT, with an aftermarket Pioneer (FH-X720BT, I believe) radio in it. While I primarily listen to my music in my car via a USB memory stick I connect to my Pioneer radio via a cable, I do have my Nexus 6 paired to it in case I want to wirelessly stream music (say, in the event I don't have my USB memory stick in the car with me). I do have to say that the Bluetooth works far better between my Nexus 6 and this Pioneer radio than it did with the two previous radios I had in this car, a JVC touchscreen and an Alpine non-touchscreen unit. However, I drive a tractor-trailer for a living, and I listen to my music on my phone via an auxiliary cable hooked from the phone to the OEM Volvo radio. Occasionally, my music will suddenly stop playing over the radio, yet I see the track, in Poweramp on my phone (I use Poweramp exclusively on my phone to listen to my music) is still playing.. What has happened is that, even though my car may be more than 500 miles away from where I'm currently located, my Nexus 6 has suddenly somehow connected to the Pioneer radio in my car! When this happens, my music will frequently start playing through my Plantronics Bluetooth earpiece that I use in my truck (even though I have it set up to NOT stream media from my phone, and even though the phone is currently showing it's connected to my Pioneer car stereo)! How this happens is just beyond my ability to understand, LOL! Posted via the Android Central App
  • I have no problem streaming or with button presses on Android. Posted via the Android Central App
  • I used to have problems on my Galaxy Note 4. I don't anymore. The best solution, that I've found, is (if you root and/or rom) uninstall all other music players. Then, just leave it with only the one you want. Also, a good measure is to force close all players except for the one you want, and the shouldn't start back up until you start them. Posted from my Galaxy Note 4 on SlimLP from the official Android Central app for Android.
  • Auto resume when connecting to my Truck OEM headunit (Ford Sync gen 1) is hit or miss, but its actually the truck. It dumps to radio if bluetooth doesn't connect fast enough. Otherwise I have no problem, playing or controling music via it or a pair of Sennheiser BT headphones (and older pair of MM100s). On a Nexus 7v2, Nexus 5 and now an S7 (though the S7 sometimes doesn;t register as connected to the truck though the truck shows it as connected) Until Lollipop though (maybe it was 4.4), I had lipsync issues using wireless headphones and watching a movie.... too much of a delay. I did have the focus issue when I was trying multiple apps for music, but now I just play everything through spotify and have tasker launch spotify when powered and connect to specific BT device....
  • Thanks for writing about these issues. I've had similar audio playback problems related to Bluetooth. I also wish my Nexus 6 & 7 had a "Music Priority" mode where no other apps could make notification sounds that might interrupt music playback. This mode would also shift & prioritize all of the device's resources to insure instantaneous & smooth playback. It could even be triggered only when specific music apps are open.
  • I have a G4 (on L not M) with PowerAmp and my Sony MDR-1ABT's and thankfully everything works great! Only thing I get once in awhile is a second or 2 of pausing/skipping but it doesn't bother me because I'm wireless. SQ is great for BT thanks to AptX codec!
  • If you have a Sony phone or Walkman you'd be able to use the LDAC codec which is even better than AptX. Posted via the Android Central App
  • We have tried and tried. My Gf has zero patience for Bluetooth. We have a nice BT Speaker in the apartment but she just uses a 3.5mm jack cable too plug in her tablet or phone.
  • I thought it was just me. Thanks for this. Posted via the Android Central App
  • Bluetooth on my N6 since Marshmallow has been horrible for me. Won't connect to my car automatically 60% of the time, and if I pause the audio for more than 10 seconds, it disconnects requiring me to manually select my car to connect again. It's also randomly erases all of my paired devices requiring me to repair and rename everything again. My Vizio sound bar also doesn't work correctly anymore with my N6 since the update. Now, if I have the phone's volume too high, it skips and stutters on the vizio. Turn the volume down on the phone and it works, but then I have to turn the sound bar up way higher than normal. If I forget to turn it down again, I practically blow the speakers when I switch to TV. I keep waiting for a fix, but it never comes. It all worked flawlessly before Marshmallow.
  • This and that it just simply does not work if a body is between the devices. i get it, the signal can't travel through water, but i mean how useful is a Bluetooth headphone if the phone being in my pocket will result in a choppy signal. also not sure what causes the interference but just walking down most blocks in Manhattan cause interference. its ridiculous.
  • I'm feeling pretty fortunate now: 12 devices are paired to my phone, and all of them work well. Voyager Pro headset works fine on the opposite side, and remains paired to 50 feet, which can be a pain when the headset is still in the car and I'm going to bed. Streambot Mini is the only one with an occasional glitch now and then, and that's after playing for more than half an hour. I usually turn the Streambot off and on to resolve it. Other than that, it's all cool. Wife uses her iHome iBN24 double speaker for hours at a time.
  • Hi Ara,
    I'm trying to find a pair of bluetooth headphones with which playback control (most importantly changing track, in Spotify specifically) will work for my Galaxy S7 Edge. I see occasionally in reviews, "These features will only work for iPhone", but often Android compatibility isn't even mentioned. Is there a way to know whether a pair will work before trying them out? Thanks!
  • Not a fix but for info. I was getting very frustrated (angry) that the media controls on my Sony Smartwatch 3 would not work with my Elephone P9000 with either stock Android 6.01 or various mods. I mean, Android watch to Android phone should just work.
    While trying to install an older version of Android I managed to brick the phone (probably can be recovered but a bit of a project). So, not being able to live without a phone, I bought the Motorola G4 (also Android 6.01) a bargain price on Amazon (UK) and, without any messing around, everything works perfectly!