Bug 516041

Summary: MPRIS Reciever plugin Android permissions broken in one of the recent updates.
Product: [Applications] kdeconnect Reporter: pierwszymieszko
Component: android-applicationAssignee: Albert Vaca Cintora <albertvaka>
Status: RESOLVED FIXED    
Severity: normal CC: andrew.g.r.holmes, pierwszymieszko
Priority: NOR    
Version First Reported In: 25.12.2   
Target Milestone: ---   
Platform: Android   
OS: Android 10.x   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Log export from the Android KDE Connect app

Description pierwszymieszko 2026-02-15 14:42:57 UTC
Created attachment 189618 [details]
Log export from the Android KDE Connect app

SUMMARY
An update to the Android app seems to have broken the permissions for controlling the media player. As a result the media control on Android no longer works (to clarify: controlling PC media from the Android phone works, controlling Android phone media from the PC does not).

STEPS TO REPRODUCE
1. Enable every available permission for KDE Connect in the Android settings.
2. Pair and connect PC and phone.
3. Play any media on the phone (tried VLC, YouTube, Omnia, NewPipe)

OBSERVED RESULT
No media player is visible in the system tray, the media buttons on the keyboard have no effect.

EXPECTED RESULT
Media player shows up in the system tray, and the media buttons on the keyboard work (like it did before).

SOFTWARE/OS VERSIONS
PC:
Arch Linux
KDE Plasma Version: 6.5.5.
KDE Frameworks Version: 6.23.0
Qt Version: 6.10.2

Phone:
Android 10, not rooted
KDE Connect app version 1.35.2 

ADDITIONAL INFORMATION
Attached is a complete log export from the Android app. Around line 500, this first appears:


>>02-15 14:46:43.724  6055  6055 D KDE/addPlugin: Permissions OK MousePadPlugin
>>02-15 14:46:43.725  6055  6055 D KDE/addPlugin: Optional Permissions OK MousePadPlugin
>>02-15 14:46:43.725  6055  6055 D KDE/addPlugin: Permissions OK MouseReceiverPlugin
>>02-15 14:46:43.725  6055  6055 D KDE/addPlugin: Optional Permissions OK MouseReceiverPlugin
>>02-15 14:46:43.725  6055  6055 D KDE/addPlugin: Permissions OK MprisPlugin
>>02-15 14:46:43.725  6055  6055 D KDE/addPlugin: Optional Permissions OK MprisPlugin
>>02-15 14:46:43.725  6055  6055 D KDE/addPlugin: Permissions OK MprisReceiverPlugin
>>02-15 14:46:43.725  6055  6055 D KDE/addPlugin: Optional Permissions OK MprisReceiverPlugin
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: Exception
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: java.lang.SecurityException: Missing permission to control media.
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.os.Parcel.createException(Parcel.java:2088)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.os.Parcel.readException(Parcel.java:2056)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.os.Parcel.readException(Parcel.java:2004)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.media.session.ISessionManager$Stub$Proxy.addSessionsListener(ISessionManager.java:816)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.media.session.MediaSessionManager.addOnActiveSessionsChangedListener(MediaSessionManager.java:315)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.media.session.MediaSessionManager.addOnActiveSessionsChangedListener(MediaSessionManager.java:278)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at org.kde.kdeconnect.plugins.mprisreceiver.MprisReceiverPlugin.onCreate(r8-map-id-3bcd0e06b2f4959a391f9a0edb00194aa6444356c6b1585c988106c2b317c3de:61)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at org.kde.kdeconnect.Device.addPlugin(r8-map-id-3bcd0e06b2f4959a391f9a0edb00194aa6444356c6b1585c988106c2b317c3de:181)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at org.kde.kdeconnect.Device.reloadPluginsFromSettings(r8-map-id-3bcd0e06b2f4959a391f9a0edb00194aa6444356c6b1585c988106c2b317c3de:79)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at org.kde.kdeconnect.Device.setPluginEnabled(r8-map-id-3bcd0e06b2f4959a391f9a0edb00194aa6444356c6b1585c988106c2b317c3de:26)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at org.kde.kdeconnect.ui.PluginPreference.onBindViewHolder$lambda$0(r8-map-id-3bcd0e06b2f4959a391f9a0edb00194aa6444356c6b1585c988106c2b317c3de:21)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at org.kde.kdeconnect.ui.PluginPreference.$r8$lambda$06eajIefpPnEMC_pIssxdQw07-U(r8-map-id-3bcd0e06b2f4959a391f9a0edb00194aa6444356c6b1585c988106c2b317c3de:1)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at org.kde.kdeconnect.ui.PluginPreference$$ExternalSyntheticLambda1.onClick(r8-map-id-3bcd0e06b2f4959a391f9a0edb00194aa6444356c6b1585c988106c2b317c3de:102)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.view.View.performClick(View.java:7870)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.view.View.performClickInternal(View.java:7839)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.view.View.access$3600(View.java:886)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.view.View$PerformClick.run(View.java:29363)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.os.Handler.handleCallback(Handler.java:883)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.os.Handler.dispatchMessage(Handler.java:100)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.os.Looper.loop(Looper.java:237)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.app.ActivityThread.main(ActivityThread.java:7948)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at java.lang.reflect.Method.invoke(Native Method)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: Caused by: android.os.RemoteException: Remote stack trace:
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at com.android.server.media.MediaSessionService.enforceMediaPermissions(MediaSessionService.java:531)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at com.android.server.media.MediaSessionService.access$4800(MediaSessionService.java:121)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at com.android.server.media.MediaSessionService$SessionManagerImpl.verifySessionsRequest(MediaSessionService.java:1930)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at com.android.server.media.MediaSessionService$SessionManagerImpl.addSessionsListener(MediaSessionService.java:1155)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 	at android.media.session.ISessionManager$Stub.onTransact(ISessionManager.java:415)
>>02-15 14:46:43.742  6055  6055 E MprisReceiver: 
>>02-15 14:46:43.742  6055  6055 D KDE/addPlugin: Permissions OK NotificationsPlugin
>>02-15 14:46:43.742  6055  6055 D KDE/addPlugin: Optional Permissions OK NotificationsPlugin
>>02-15 14:46:43.742  6055  6055 D KDE/addPlugin: Permissions OK PingPlugin


This repeats 4 more times in the log file. It appears to very clearly complaining about permissions. I've tried enabling every permission for the app I could find, but nothing worked. It worked perfectly earlier (it broke a couple weeks ago), making me think that it must have been a recent update.
Comment 1 Albert Vaca Cintora 2026-02-16 11:45:13 UTC
You need to give permissions to access notifications again, since a recent update where we introduced a bug. Sorry about that :(