Bug 516041 - MPRIS Reciever plugin Android permissions broken in one of the recent updates.
Summary: MPRIS Reciever plugin Android permissions broken in one of the recent updates.
Status: RESOLVED FIXED
Alias: None
Product: kdeconnect
Classification: Applications
Component: android-application (other bugs)
Version First Reported In: 25.12.2
Platform: Android Android 10.x
: NOR normal
Target Milestone: ---
Assignee: Albert Vaca Cintora
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-02-15 14:42 UTC by pierwszymieszko
Modified: 2026-02-16 11:45 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Log export from the Android KDE Connect app (150.46 KB, text/plain)
2026-02-15 14:42 UTC, pierwszymieszko
Details

Note You need to log in before you can comment on or make changes to this bug.
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 :(