Android小部件:跳过“下一步”和“上一步”按钮don';行不通

Android小部件:跳过“下一步”和“上一步”按钮don';行不通,android,widget,media,playback,mediabrowserservicecompat,Android,Widget,Media,Playback,Mediabrowserservicecompat,我目前正在尝试为音频应用程序开发一个小部件。小部件包括一个“跳到上一个”、“播放”和一个“跳到下一个”按钮,如下图所示 我遵循了这一点,播放\u暂停按钮正常工作,但目前只有在播放开始时 要开始播放,用户必须1)打开应用程序。2) 选择一个 播客。3) 选择要播放的一集。4) 等待缓冲区关闭 完整的 只需将正确的PendingEvent设置到play_pause(播放暂停)按钮即可。因此,当单击此按钮时,将调用我的MediaSession.Callback.onPlay()方法 不幸的是,跳到下

我目前正在尝试为音频应用程序开发一个小部件。小部件包括一个“跳到上一个”、“播放”和一个“跳到下一个”按钮,如下图所示

我遵循了这一点,播放\u暂停按钮正常工作,但目前只有在播放开始时

要开始播放,用户必须1)打开应用程序。2) 选择一个 播客。3) 选择要播放的一集。4) 等待缓冲区关闭 完整的

只需将正确的PendingEvent设置到play_pause(播放暂停)按钮即可。因此,当单击此按钮时,将调用我的
MediaSession.Callback.onPlay()
方法

不幸的是,跳到下一个按钮和跳到上一个按钮的情况并非如此。我想在单击skip_to_next小部件按钮时调用
MediaSession.Callback.onSkipToNext()


这是我的类和。我不确定这是否是完整的解决方案,但似乎上一个和下一个按钮没有注册

我以前没有真正使用过
MediaButtonReceiver
,所以我猜,但是我在
PlayBackUtils
中添加了
ACTION\u SKIP\u TO\u PREVIOUS
getPlaybackStateFromPlayerState
,现在代码确实接收到了上一个事件,并且实际上也更改到了上一个曲目

case STARTED:
    return stateBuilder
        .setState(PlaybackStateCompat.STATE_PLAYING, 
            currentPosition, playbackSpeed)
        .setActions(PlaybackStateCompat.ACTION_PAUSE | 
            PlaybackStateCompat.ACTION_PLAY_PAUSE | 
            PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS |
            PlaybackStateCompat.ACTION_STOP | 
            PlaybackStateCompat.ACTION_SEEK_TO | 
            PlaybackStateCompat.ACTION_PLAY)
        .build();

它起作用了吗?看起来有一个小错误:“PendingEvent NextPendingEvent=MediaButtonReceiver.BuildMediaButtonPendingEvent(上下文,PlaybackStateCompat.ACTION_SKIP__至_PREVIOUS);setTransportControlOnClickListeners”。下一步应该是动作?我修复了这个错误,但这不是问题所在。问题是MediaSession.Callback.onSkipeToNext()或MediaSession.Callback.OnSkipeTopPrevious()未被触发。好的,我会快速查看一下……我最后执行了Ctrl-Shift-F以查看动作\u播放\u暂停是如何使用的,因为该动作起作用,然后再次执行相同的动作\u跳过\u到上一个动作。Android Studio IDE有一个非常干净的界面,可以浏览多个文件中的字符串……啊,好吧,我在代码中看到了前景位,但在播放音乐时没有任何前景通知。有机会我会去看看的。干杯