Android 如何修复';找不到媒体按钮接收器';例外

Android 如何修复';找不到媒体按钮接收器';例外,android,android-mediaplayer,android-mediasession,Android,Android Mediaplayer,Android Mediasession,我正在构建媒体播放器,并希望处理来自通知的操作,如“播放”、“暂停”。 在我的活动中,我注册了MediaButtonReceiver registerReceiver(MediaButtonReceiver(), IntentFilter(Intent.ACTION_MEDIA_BUTTON)) 并使用创建了媒体通知 val builder: NotificationCompat.Builder = MediaStyleHelper.from(this, mediaSession!!) bui

我正在构建媒体播放器,并希望处理来自通知的操作,如“播放”、“暂停”。 在我的活动中,我注册了MediaButtonReceiver

registerReceiver(MediaButtonReceiver(), IntentFilter(Intent.ACTION_MEDIA_BUTTON))
并使用创建了媒体通知

val builder: NotificationCompat.Builder = MediaStyleHelper.from(this, mediaSession!!)
builder.addAction(
                NotificationCompat.Action(
                        android.R.drawable.ic_media_previous,
                        "Previous",
                        MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS)
                )
        )
但当我按下媒体通知上的操作按钮时,什么也没发生。 当我添加这些动作时,执行

MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS)
打印以显示警告

W/MediaButtonReceiver:在给定上下文中找不到唯一的媒体按钮接收器,因此无法生成挂起的意图


但是,如果我以编程方式注册了它,为什么不注册它呢?

在使用
mediabutonreceiver
函数之前,需要将它添加到清单中


如果尚未使用AndroidX库,则需要使用旧的类名:
android.support.v4.media.session.MediaButtonReceiver

registerReceiver(MediaButtonReceiver(), IntentFilter(Intent.ACTION_MEDIA_BUTTON))