diff --git a/app/src/main/java/audio/funkwhale/ffa/playback/MediaSession.kt b/app/src/main/java/audio/funkwhale/ffa/playback/MediaSession.kt
index 9b3a4eba86a3f4e91daadc784240c33f5b174e8c..8898309b548551dc242f4c1ebf2c9a842b43aaec 100644
--- a/app/src/main/java/audio/funkwhale/ffa/playback/MediaSession.kt
+++ b/app/src/main/java/audio/funkwhale/ffa/playback/MediaSession.kt
@@ -2,6 +2,7 @@ package audio.funkwhale.ffa.playback
 
 import android.content.Context
 import android.content.Intent
+import android.os.Build
 import android.os.Bundle
 import android.os.ResultReceiver
 import android.support.v4.media.session.MediaSessionCompat
@@ -44,13 +45,17 @@ class MediaSession(private val context: Context) {
 
       it.setMediaButtonEventHandler { _, _, intent ->
         if (!active) {
-          context.startService(
-            Intent(context, PlayerService::class.java).apply {
-              action = intent.action
+          Intent(context, PlayerService::class.java).let { player ->
+            player.action = intent.action
 
-              intent.extras?.let { extras -> putExtras(extras) }
+            intent.extras?.let { extras -> player.putExtras(extras) }
+
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+              context.startForegroundService(player)
+            } else {
+              context.startService(player)
             }
-          )
+          }
 
           return@setMediaButtonEventHandler true
         }
diff --git a/changes/changelog.d/120.bugfix b/changes/changelog.d/120.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..96e81d441b26af40b0ac9666795076f032427564
--- /dev/null
+++ b/changes/changelog.d/120.bugfix
@@ -0,0 +1 @@
+Fix unresponsive bluetooth buttons with Oreo and later (thanks @hdash)
\ No newline at end of file