我正在构建媒体播放器,并希望处理“播放”,“暂停”之类的通知中的操作。 在我的活动中,我注册了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:在给定的上下文中找不到唯一的媒体按钮接收器,因此无法建立挂起的意图。”
但是如果我已经以编程方式进行了注册,为什么没有注册?
答案 0 :(得分:0)
在使用MediaButtonReceiver
函数之前,需要将其添加到清单as described in the docs:
<receiver android:name="androidx.media.session.MediaButtonReceiver" >
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
如果您尚未使用AndroidX库,则需要使用旧的类名:android.support.v4.media.session.MediaButtonReceiver