我为播放器设置了一个通知,我想在播放后更新图标或暂停通知中的操作。 这是我的通知代码。
private void showNotification(String title, Bitmap bitmap) {
//region Create Notification
MediaSessionCompat mediaSession = new MediaSessionCompat(getApplicationContext(), "session tag");
MediaSessionCompat.Token token = mediaSession.getSessionToken();
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this,"PRIMARY_CHANNEL")
.setSmallIcon(R.mipmap.ic_launcher_1)
.setLargeIcon(bitmap)
.setContentTitle("Simplay")
.setContentText(title)
.setOngoing(true)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setContentIntent(notifyPendingIntent)
.addAction(R.drawable.exo_controls_rewind,"",rewindPendingIntent)
**.addAction( R.drawable.exo_controls_pause,"",playPendingIntent)**
.addAction(R.drawable.exo_controls_fastforward,"",forwardPendingIntent)
.setStyle(new android.support.v4.media.app.NotificationCompat.MediaStyle()
.setMediaSession(token))
.setPriority(NotificationCompat.PRIORITY_HIGH);
notificationManager = NotificationManagerCompat.from(this);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
CharSequence name = "Notification";
String description = "";
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel channel = new NotificationChannel("PRIMARY_CHANNEL", name, importance);
channel.setDescription(description);
channel.enableLights(true);
channel.setShowBadge(false);
channel.setLockscreenVisibility(123);
NotificationManager notificationManager1 = getSystemService(NotificationManager.class);
notificationManager1.createNotificationChannel(channel);
}
notificationManager.notify(123, mBuilder.build());
//endregion
}
答案 0 :(得分:0)
您应该使用
.addAction(getResources.getDrawable(R.drawable.exo_controls_pause),"",playPendingIntent)
答案 1 :(得分:0)
解决方案 要实时更改操作图标,您需要:
例如:
notificationBuilder.actions[1] = new Notification.Action(R.drawable.pause, "play", pendingIntent);
NotificationManager service = ((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE));
service.notify(101, notificationBuilder);
或
notificationBuilder.actions[1] = new Notification.Action(R.drawable.pause, "play", pendingIntent);
startForeground(101, notificationBuilder);