Why does only the stock music app output track info via Bluetooth, but 3rd party apps don't?

Lord Vadger

Member
Nov 19, 2012
24
0
0
Visit site
This is on my Razr Maxx HD with Jelly Bean. When I use the stock Google Play Music app and play music via Bluetooth through my car's JVC X50BT receiver, the receiver sees the track information and can tell me song title, artist, time, etc. The JVC unit supports A2DP 1.2 and AVRCP 1.3 and the Maxx HD supports A2DP 1.2 and AVRCP 1.4 (from what I could dig up).

But if I use a third party music app (Music Folder Free or Smart AudioBook) via Bluetooth, my car's receiver only says "Pause" as if it's not getting anything from the phone. However, the music does in fact play through the speakers, and I can even go forwards/backwards to skip tracks using the receiver's buttons.

Is there something special about the Google Play Music app that allows only it to do this? The reason I ask--and it's pretty trivial in the grand scheme of things--is that when the JVC unit displays "Pause" all the time when I'm using a third party app is I can't see what time it is on the clock. I can hit "Disp" on the JVC unit and it'll give me the current time for a few seconds, but then it reverts to "Pause" and stays there. But if the unit's receiving info like it does from Google Play Music and is in "Play" mode, then it'll display the clock all of the time. Kind of weird functionality, but it's why I ask.
 

Lord Vadger

Member
Nov 19, 2012
24
0
0
Visit site
Ha yeah, that's what I thought too so I emailed the developer and straight up asked if that function could be implemented. And I received some very prompt responses!

First response, responding to what I put in the OP:

I think I need to explain a little bit how this usually works in Android. The player does not communicate directly to any Bluetooth device. All audio related Bluetooth communication is managed by the Android operating system. The player just tells the system about the current status (like playing/paused and currently playing file). The player doesn't even know if the audio stream is currently routed through speaker, headset or Bluetooth.
Therefore it is the job of the firmware to tell your JVC about the current status. Obviously it doesn't do that. For me it sounds like either a bug in the current firmware version or the used A2DP profile version does not support that feature.
I'm very sorry, but in this case I can't help because the player does not have any influence on the firmware.

Then, a second response after I clarified that the stock app does in fact send the info to the JVC player:

I'm not 100% sure why it is like that. Sometimes manufacturers use proprietary APIs for their own apps and don't allow third-party apps to use them.
At least I don't see a reason why the system should not be able to tell your JVC about the status of players like mine. This could either be a bug or a 'feature' to make people using the 'right' apps.

So I'm curious if anyone knows more or can shed more light on this.
 

Shadowriver

Well-known member
Jan 5, 2012
697
9
0
Visit site
Odp: Why does only the stock music app output track info via Bluetooth, but 3rd party apps don't?

So its hidden API (stock player need to do calls for that function there no magic here or esle that player do all bt work which i douth) or in worse scenerio it requires root access. So its possible to be implemented just matter of reverse engennering which no body tried as its quite pain in the back part to do.