android 中的NotificationCompat.MediaStyle() 中只有上一个按钮有效。 为什么我的下一个和暂停按钮在 Android 通知中起作用。
private void setMediaPlaybackState(int state) {
PlaybackStateCompat.Builder playbackstateBuilder = new PlaybackStateCompat.Builder();
if( state == PlaybackStateCompat.STATE_PLAYING ) {
playbackstateBuilder.setActions(PlaybackStateCompat.ACTION_PLAY_PAUSE | PlaybackStateCompat.ACTION_PAUSE);
} else {
playbackstateBuilder.setActions(PlaybackStateCompat.ACTION_PLAY_PAUSE | PlaybackStateCompat.ACTION_PLAY);
}
playbackstateBuilder.setActions(PlaybackStateCompat.ACTION_SKIP_TO_NEXT);
playbackstateBuilder.setActions(PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS);
playbackstateBuilder.setState(state, PlaybackStateCompat.PLAYBACK_POSITION_UNKNOWN, 1);
mMediaSessionCompat.setPlaybackState(playbackstateBuilder.build());
}
private void showPlayingNotification() {
NotificationCompat.Builder builder = MediaStyleHelper.from(BackgroundAudioService.this, mMediaSessionCompat);
if( builder == null ) {
return;
}
builder.addAction(new NotificationCompat.Action(R.drawable.ic_skip_previous_black_48dp, "Play", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS)));
builder.addAction(new NotificationCompat.Action(R.drawable.ic_pause, "Pause", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_PLAY_PAUSE)));
builder.addAction(new NotificationCompat.Action(R.drawable.ic_skip_next_black_48dp, "Play", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_SKIP_TO_NEXT)));
builder.setStyle(new NotificationCompat.MediaStyle().setShowActionsInCompactView(0,1,2).setShowCancelButton(true).setMediaSession(mMediaSessionCompat.getSessionToken()));
builder.setSmallIcon(R.drawable.music_logo);
NotificationManagerCompat.from(BackgroundAudioService.this).notify(1, builder.build());
}
最佳答案
我意识到这篇文章有点旧了,但我将回答我认为你的问题所问的问题。您是说只有前一个按钮有效,但“跳过”按钮无效。我对此的回应是为您执行以下playbackStateBuilder:
playbackStateBuilder.setActions(PlaybackStateCompat.ACTION_SKIP_TO_NEXT
| PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS);
无论出于何种原因,您像这样一个接一个地声明操作的方式是行不通的。我不知道为什么。我为此苦苦挣扎了整整两周,除了你之外,我的 friend 没有人提出过有关此问题的问题。我希望任何经历过这种情况的人都会被我的回答所拯救,我希望它也能帮助你,我的 friend ! (:
关于java - android中的NotificationCompat.MediaStyle()中只有上一个按钮起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44785700/