• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[MOD] Spotify app with AVRCP bluetooth metadata

Search This thread

res_au

Senior Member
Sep 17, 2007
63
36
Melbourne
Spotify App with Bluetooth metadata (i.e. album , title , artist ) modification.
Attached is current version @ 4/1/12 (v0.5.4.73) - works perfectly with my Subaru Bluetooth, let me know how you go.

Installation Instructions (from fayez @ spotify):
NOTE: you will have to redownload your music (this may be prevented by manually copying the apk)
1. Download the .apk file and get it onto your phone (you don't need the AVRCP zip file at all - it's for reference only)
2. Uninstall your current version of Spotify
3. Install the custom .apk (you may need to turn on the ability to install from unknown sources first... It's in Settings > Security for me... Make sure to turn it off afterward)
4. Launch the app and log back into your Spotify account and enjoy.

You won't receive update reminders from the Play store, but will need to check manually (if you do see one, let me know so I can patch it. )


Original Post:
Hi guys,
I've been trying to modify the Spotify app so that the title, album and artist information shows up over bluetooth with AVRCP. I found a really helpful site with a patch/diff file showing the smali changes that need to be made. I've had a crack, but I think the current version of Spotify is different to the one the patch was made for.

the patch is set to make changes to one smali file (ad.smali) (smali/com/spotify/mobile/android/service/ad.smali)

however the important parts of that file are now in x.smali (smali/com/spotify/mobile/android/service/x.smali)

Any guidance/help would be appreciated. It frustrates me how my car stereo doesn't show up any useful information (even though it does with the stock music app)

I've attached the original smali, my attempt as well as the patch file.


Sources:
https://github.com/loganakamatsu/SpotifyAVRCP
 

Attachments

  • SpotifyAVRCP.zip
    5.3 KB · Views: 3,418
  • Spotify_V0_5_4_73_metadata.apk
    3.2 MB · Views: 9,335
Last edited:

muzicman82

Senior Member
Dec 27, 2007
501
22
Wilmington, DE
Spotify App with Bluetooth metadata (i.e. album , title , artist ) modification.
Attached is current version 4/1/12 - works perfectly with my Subaru Bluetooth, let me know how you go.


Original Post:
Hi guys,
I've been trying to modify the Spotify app so that the title, album and artist information shows up over bluetooth with AVRCP. I found a really helpful site with a patch/diff file showing the smali changes that need to be made. I've had a crack, but I think the current version of Spotify is different to the one the patch was made for.

the patch is set to make changes to one smali file (ad.smali) (smali/com/spotify/mobile/android/service/ad.smali)

however the important parts of that file are now in x.smali (smali/com/spotify/mobile/android/service/x.smali)

Any guidance/help would be appreciated. It frustrates me how my car stereo doesn't show up any useful information (even though it does with the stock music app)

I've attached the original smali, my attempt as well as the patch file.


Sources:
https://github.com/loganakamatsu/SpotifyAVRCP

Is this the latest 0.5.4.73 build? Does this work on any phone, or in my case the Galaxy S III? Should this thread be moved to general Android dev and not specifically for the Note II?
 

res_au

Senior Member
Sep 17, 2007
63
36
Melbourne
Is this the latest 0.5.4.73 build? Does this work on any phone, or in my case the Galaxy S III? Should this thread be moved to general Android dev and not specifically for the Note II?

Yes it is version 0.5.4.73
Yes it should work on any phone (not just the note II)
Yes it should be moved to general android dev (now to work out how to do that :) )
edit: I think a mod needs to move it.... (thanks in advance)

Thanks muzicman
 
Last edited:

FayezZ

Member
Mar 25, 2011
48
11
TX
Spotify App with Bluetooth metadata (i.e. album , title , artist ) modification.
Attached is current version @ 4/1/12 (v0.5.4.73) - works perfectly with my Subaru Bluetooth, let me know how you go.

THANK YOU!!! Works beautifully on my HTC Sensation 4G with CM10. I had come across the mod you used as your source a few weeks ago and was sorely disappointed when it didn't work. Not any more!
 
  • Like
Reactions: Nidal197 and res_au

Trumps

Senior Member
Jul 12, 2010
106
28
THANK YOU!!!

2 things worth mentioning - it broke facebook authentication for me, but I fixed that by going into my spotify account on their website and generating a device password and using my device username/password.

https://www.spotify.com/us/account/set-device-password/


Secondly, the track progress isn't working on my 2012 VW RNS-315 but the display and controls still work.

Sad how everybody has been asking for this for over a year and Spotify just makes excuses and basically tells everybody it's too hard.
 
  • Like
Reactions: asatnik11

planetf1

Senior Member
Jan 25, 2010
842
90
Thanks! Very nice to see this.

I so hope spotify see fit to incorporate this into the official client.

Just one thought -- I also tried the method at http://www.julian-young.com/2011/04/21/finding-the-spotify-external-sd-location/ to move offline storage to sdcard, but the removal of the app to install this one clearly undoes that.

Is there any easy hack to this one to move storage to sd? (again a feature spotify need to put back)?

I realise an alternative is to root and fix up at the filesystem level using links/directory bind, but currently I'm using 2 apps (sky go, pingit) which have some issues with rooted phones (though I may give up on them anyway)

---------- Post added at 10:17 AM ---------- Previous post was at 10:16 AM ----------

On other obsetvation - I noticed the time counter didn't move during playback?
 

res_au

Senior Member
Sep 17, 2007
63
36
Melbourne
Is there any easy hack to this one to move storage to sd? (again a feature spotify need to put back)?

On other obsetvation - I noticed the time counter didn't move during playback?

It's strange they removed SD card storage. I use directory binder for that. You could hard code it. I'll look into it.

In terms of track time. It should be possible. I'll have a look into it. I'm pretty new to mucking around with smali though :)
 
  • Like
Reactions: planetf1

Saiyajin

Senior Member
Jan 7, 2007
200
5
Thanks mate - very useful. Just installed it and will test it on my way back home. Could you please add an information in the first post, that all offline music will be deleted when uninstalling the original app? Hoped that a redownload of all tracks wouldn't be needed but unfortunately it does.
 

res_au

Senior Member
Sep 17, 2007
63
36
Melbourne
Thanks mate - very useful. Just installed it and will test it on my way back home. Could you please add an information in the first post, that all offline music will be deleted when uninstalling the original app? Hoped that a redownload of all tracks wouldn't be needed but unfortunately it does.

Added.. I wonder whether you manually copy the apk whether you'd have to redownload your music... Thanks mate.
 

mikasand

New member
Jan 10, 2013
4
0
Thanx for the app working perfectly with sony dsx 310bt

Sent from my GT-N7100 using xda premium

I works good in my volvo however the meta text updates 10-30 seconds after the new song starts, or if I press Next track button in my car stereo.
To have the meta text update instantly you need to select a song in the spotify app in my android phone.

Anyway, a big THANKS for improving the app!!!

Mikael
 

Bergling

Member
Mar 3, 2010
5
0
Tried to install this yesterday, but since I have used the mentioned trick to have the music stored on my external card (install old version - change path - upgrade), the installation failed when trying to install this patched version. I guess this has to do with the signing key.

I'm not that familiar with Android development (yet), but I tried to replace the updated version apk with the patched, and it didn't work. Do they have to have the exact same name for this to work?

Is there any other way to replace the currently installed version manually? Would it work if I decompiled/repacked both the old version and the patched one and signed with the same key?

Would really love to have the bluetooth working, but I rate the possibility to have the music stored on SD card higher.
 

mikasand

New member
Jan 10, 2013
4
0
try this

I'm not that familiar with Android development (yet), but I tried to replace the updated version apk with the patched, and it didn't work. Do they have to have the exact same name for this to work?

I had problems as well. App did not work when I tried it first.
However it works good now after I installed it again using this procedure:

1. Clear cache / erase data files in : Settings, Apps, Spotify.
2. Uninstall old Spotify.
3. Install new patched App.
4. Login using Spotify username/password (do not login by using Facebook).
 

Leonart

Member
Jan 12, 2013
27
8
Honestly I think it's nuts that someone had to patch this in ahead of Spotify's actual development team.

I appreciate this. Just installed a new head unit and it bothers my OCD that I can't see any metadata.
 

Bergling

Member
Mar 3, 2010
5
0
I had problems as well. App did not work when I tried it first.
However it works good now after I installed it again using this procedure:

1. Clear cache / erase data files in : Settings, Apps, Spotify.
2. Uninstall old Spotify.
3. Install new patched App.
4. Login using Spotify username/password (do not login by using Facebook).

Yes, I know it works if I unstall first. Sorry if I was unclear.

But since I have used the method of first install an older version to set the offline path to the external card, and then upgrade to the latest verson, I don't think this setting will "survive" if I uninstall first.

Hence, I would like to simply "replace" the currently installed version with the patched apk, without doing an actual install. Is that possible somehow?
 

Grimthorr

Member
Dec 27, 2012
27
11
England, UK
hughesbox.co.uk
Thanks for this! Unfortunately it doesn't work on my Sony MEX-BT4000U head unit though. I completely removed the original version of Spotify (including deleting data and cache) and then installed this version but there's still no track, album or artist information displayed on the unit. Any ideas?
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 30
    Spotify App with Bluetooth metadata (i.e. album , title , artist ) modification.
    Attached is current version @ 4/1/12 (v0.5.4.73) - works perfectly with my Subaru Bluetooth, let me know how you go.

    Installation Instructions (from fayez @ spotify):
    NOTE: you will have to redownload your music (this may be prevented by manually copying the apk)
    1. Download the .apk file and get it onto your phone (you don't need the AVRCP zip file at all - it's for reference only)
    2. Uninstall your current version of Spotify
    3. Install the custom .apk (you may need to turn on the ability to install from unknown sources first... It's in Settings > Security for me... Make sure to turn it off afterward)
    4. Launch the app and log back into your Spotify account and enjoy.

    You won't receive update reminders from the Play store, but will need to check manually (if you do see one, let me know so I can patch it. )


    Original Post:
    Hi guys,
    I've been trying to modify the Spotify app so that the title, album and artist information shows up over bluetooth with AVRCP. I found a really helpful site with a patch/diff file showing the smali changes that need to be made. I've had a crack, but I think the current version of Spotify is different to the one the patch was made for.

    the patch is set to make changes to one smali file (ad.smali) (smali/com/spotify/mobile/android/service/ad.smali)

    however the important parts of that file are now in x.smali (smali/com/spotify/mobile/android/service/x.smali)

    Any guidance/help would be appreciated. It frustrates me how my car stereo doesn't show up any useful information (even though it does with the stock music app)

    I've attached the original smali, my attempt as well as the patch file.


    Sources:
    https://github.com/loganakamatsu/SpotifyAVRCP
    24
    Spotify - Bluetooth Metadata Mod - 0.7.1.399

    I modded the newest 0.7.1.399 version of Spotify released October 11, 2013... it is working great with my Pioneer AVH-P8400BT Headunit in my car.

    Since it isn't signed with Spotify's encryption keys and it is using a generic android testkey it will not let you login with facebook. If you currently can only use Facebook to sign in, go to this Spotify page and get yourself a real username and password to use for login: https://www.spotify.com/us/account/set-device-password/

    Let me know if there are any issues with the modded apk, it is attached at the bottom of this post. Make sure you have your android device set to allow application installations from Unknown Sources enabled, otherwise it will not install.

    I recommend to clear Spotify data and uninstall any previous Spotify version before installing this one to make sure there are no lurking issues.

    This mod will NOT give you Bluetooth Metadata Info if you are running CyanogenMod or any other AOSP version of android as AVRCP is not supported on these versions at this time. However, it should work if you have a device with the new android 4.3 even if it is AOSP.... I have been told about issues, including discovering myself, that this mod currently is not working on the Samsung Galaxy Note III.
    ______

    For those interested:

    Here is the complete de-compiled and modded ...\smali\com\spotify\mobile\android\service\ag.smali file with the changes to support Bluetooth Metadata:

    Code:
    .class public final Lcom/spotify/mobile/android/service/ag;
    .super Ljava/lang/Object;
    .source "SourceFile"
    
    # interfaces
    .implements Lcom/spotify/mobile/android/util/bf;
    
    
    # instance fields
    .field private a:Landroid/app/Service;
    
    .field private b:Lcom/spotify/mobile/android/util/bb;
    
    
    # direct methods
    .method public constructor <init>(Landroid/app/Service;Lcom/spotify/mobile/android/util/bb;)V
        .locals 0
        .parameter
        .parameter
    
        .prologue
        .line 20
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        .line 21
        iput-object p1, p0, Lcom/spotify/mobile/android/service/ag;->a:Landroid/app/Service;
    
        .line 22
        iput-object p2, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        .line 23
        return-void
    .end method
    
    
    # virtual methods
    .method public final a()V
        .locals 1
    
        .prologue
        .line 26
        iget-object v0, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v0, p0}, Lcom/spotify/mobile/android/util/bb;->a(Lcom/spotify/mobile/android/util/bf;)V
    
        .line 27
        return-void
    .end method
    
    .method public final a(I)V
        .locals 0
        .parameter
    
        .prologue
        .line 35
        invoke-virtual {p0}, Lcom/spotify/mobile/android/service/ag;->c()V
    
        .line 36
        return-void
    .end method
    
    .method public final b()V
        .locals 6
    
        .prologue
        const/4 v5, 0x0
    
        const/4 v4, 0x0
    
        .line 30
        iget-object v0, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v0, p0}, Lcom/spotify/mobile/android/util/bb;->b(Lcom/spotify/mobile/android/util/bf;)V
    
        .line 31
        new-instance v0, Landroid/content/Intent;
    
        const-string v1, "android.appwidget.action.APPWIDGET_UPDATE"
    
        invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
    
        new-instance v1, Landroid/content/ComponentName;
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->a:Landroid/app/Service;
    
        const-class v3, Lcom/spotify/mobile/android/ui/widget/SpotifyWidget;
    
        invoke-direct {v1, v2, v3}, Landroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
    
        invoke-virtual {v0, v1}, Landroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;
    
        const-string v1, "track_uri"
    
        invoke-virtual {v0, v1, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const-string v1, "track_name"
    
        invoke-virtual {v0, v1, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const-string v1, "artist_name"
    
        invoke-virtual {v0, v1, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const-string v1, "album_name"
    
        invoke-virtual {v0, v1, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const-string v1, "paused"
    
        const/4 v2, 0x1
    
        invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
    
        const-string v1, "cover"
    
        invoke-virtual {v0, v1, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
    
        const-string v1, "is_prev_enabled"
    
        invoke-virtual {v0, v1, v5}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
    
        const-string v1, "is_next_enabled"
    
        invoke-virtual {v0, v1, v5}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
    
        const-string v1, "is_ad_playing"
    
        invoke-virtual {v0, v1, v5}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
    
        iget-object v1, p0, Lcom/spotify/mobile/android/service/ag;->a:Landroid/app/Service;
    
        invoke-virtual {v1, v0}, Landroid/app/Service;->sendBroadcast(Landroid/content/Intent;)V
    
        .line 32
        return-void
    .end method
    
    .method public final c()V
        .locals 7
    
        .prologue
        .line 39
        new-instance v1, Landroid/content/Intent;
    
        new-instance v4, Landroid/content/Intent;
    
        const-string v5, "com.android.music.metachanged"
    
        invoke-direct {v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
    
        const-string v5, "id"
    
        const/4 v6, 0x1
    
        invoke-virtual {v4, v5, v6}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
    
        const-string v0, "android.appwidget.action.APPWIDGET_UPDATE"
    
        invoke-direct {v1, v0}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
    
        .line 40
        new-instance v0, Landroid/content/ComponentName;
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->a:Landroid/app/Service;
    
        const-class v3, Lcom/spotify/mobile/android/ui/widget/SpotifyWidget;
    
        invoke-direct {v0, v2, v3}, Landroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
    
        invoke-virtual {v1, v0}, Landroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;
    
        .line 42
        const-string v0, "track_uri"
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v2}, Lcom/spotify/mobile/android/util/bb;->c()Ljava/lang/String;
    
        move-result-object v2
    
        invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        .line 43
        const-string v0, "track_name"
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v2}, Lcom/spotify/mobile/android/util/bb;->d()Ljava/lang/String;
    
        move-result-object v2
    
        invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        .line 44
        const-string v5, "track"
    
        invoke-virtual {v4, v5, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const-string v0, "artist_name"
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v2}, Lcom/spotify/mobile/android/util/bb;->f()Ljava/lang/String;
    
        move-result-object v2
    
        invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const-string v5, "artist"
    
        invoke-virtual {v4, v5, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        .line 45
        const-string v0, "album_name"
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v2}, Lcom/spotify/mobile/android/util/bb;->e()Ljava/lang/String;
    
        move-result-object v2
    
        invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
        
        const-string v5, "album"
    
        invoke-virtual {v4, v5, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const-string v5, "playing"
    
        const-string v6, "JustPlaying"
    
        invoke-virtual {v4, v5, v6}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        iget-object v5, p0, Lcom/spotify/mobile/android/service/ag;->a:Landroid/app/Service;
    
        invoke-virtual {v5, v4}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
    
    
        .line 46
    
        const-string v0, "paused"
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v2}, Lcom/spotify/mobile/android/util/bb;->j()Z
    
        move-result v2
    
        invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
    
        .line 48
        iget-object v0, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v0}, Lcom/spotify/mobile/android/util/bb;->g()Landroid/graphics/Bitmap;
    
        move-result-object v0
    
        .line 49
        if-eqz v0, :cond_0
    
        .line 50
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->a:Landroid/app/Service;
    
        invoke-virtual {v2}, Landroid/app/Service;->getResources()Landroid/content/res/Resources;
    
        move-result-object v2
    
        const v3, 0x7f09002c
    
        invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I
    
        move-result v2
    
        .line 52
        invoke-virtual {v0}, Landroid/graphics/Bitmap;->isRecycled()Z
    
        move-result v3
    
        if-eqz v3, :cond_1
    
        .line 53
        invoke-static {}, Lcom/spotify/mobile/android/ui/SpotifyImageLoader;->a()Lcom/spotify/mobile/android/ui/SpotifyImageLoader;
    
        invoke-static {}, Lcom/spotify/mobile/android/ui/SpotifyImageLoader;->b()V
    
        .line 54
        sget-object v0, Landroid/graphics/Bitmap$Config;->RGB_565:Landroid/graphics/Bitmap$Config;
    
        invoke-static {v2, v2, v0}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
    
        move-result-object v0
    
        .line 60
        :cond_0
        :goto_0
        const-string v2, "cover"
    
        invoke-virtual {v1, v2, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
    
        .line 61
        const-string v0, "is_prev_enabled"
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v2}, Lcom/spotify/mobile/android/util/bb;->k()Z
    
        move-result v2
    
        invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
    
        .line 62
        const-string v0, "is_next_enabled"
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v2}, Lcom/spotify/mobile/android/util/bb;->l()Z
    
        move-result v2
    
        invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
    
        .line 63
        const-string v0, "is_ad_playing"
    
        iget-object v2, p0, Lcom/spotify/mobile/android/service/ag;->b:Lcom/spotify/mobile/android/util/bb;
    
        invoke-virtual {v2}, Lcom/spotify/mobile/android/util/bb;->m()Z
    
        move-result v2
    
        invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
    
        .line 64
        iget-object v0, p0, Lcom/spotify/mobile/android/service/ag;->a:Landroid/app/Service;
    
        invoke-virtual {v0, v1}, Landroid/app/Service;->sendBroadcast(Landroid/content/Intent;)V
    
        .line 65
        return-void
    
        .line 56
        :cond_1
        const/4 v3, 0x1
    
        invoke-static {v0, v2, v2, v3}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
    
        move-result-object v0
    
        goto :goto_0
    .end method
    _______________


    The modded recompiled apk is signed with the android testkey.

    This modded version is not tied to the Google Play Store, thus it will not auto-update when a new Spotify version is released, you either have to switch back to the regular newest version manually or check back here for an updated modded version upon release.


    Borrowed and Slightly Modified Original Source Code: https://github.com/loganakamatsu/SpotifyAVRCP


    Disclaimer: I'm sure Spotify doesn't like us messing around with their APK's. It is probably against their TOS, so consider this for educational purposes only and don't try to redistribute or sell it.


    If it works for you don't forget to click thanks! and feel free to make a donation if interested, link below.
    20
    Alternative method

    @mcuser:
    The original Spotify app is not working for me with Nexus 7 2013 (Stock), Galaxy S4 and a Pebble. No metadata at all :/

    I created a simple app which is using the notification of spotify when changing the title or play/pause. So it is just sending information about title and artist for now. Tested it with a Galaxy S4 (CM10.2) and Nexus 7 2013 with original Spotify app and a Pebble as bluetooth device - works well for me :) The apk file is attached in this post. If you want, you can try it.

    I hope it's ok to post an alternativ method/"solution" here.

    edit: Updated version available. Unfortunately I can't get the album name information. So theres a method to change the album placeholder ("cmcdev | metafy" is the standard one).

    Changelog v1.1:
    - set cusom album placeholder
    - add notificationlistener service for android 4.3 or higher, disable the accessibility service and use the new service if you have android 4.3. This should solve some talkback issues.
    - new app icon
    10
    Edit: Outdated version

    Edit: Outdated version
    9
    Spotify - May

    Here you guys go... I modded the new version of Spotify released a few days ago in the first week of May for Bluetooth Metadata. Also adds some nice new features and such.

    Change log:
    New: Now you can filter and sort your playlists and tracks.
    Fixed: When returning to your playlist view, you’ll always go back to the same position.
    Fixed: No more crashing when faced with special character$ in usernames.
    Fixed: When you next log in, Spotify will remember what you'd been listening to.

    Attached...