Я создаю музыкальный проигрыватель. Все функции работают нормально, но моя панель уведомлений Кнопка «Воспроизведение и пауза» не меняется, когда я нажимаю кнопку паузы в уведомлении, но музыка останавливается, а также снова нажимаю кнопку паузы уведомления, а затем также запускаю музыку, но не меняю кнопку
Код уведомления
public static void customBigNotification(Context context, String sname){
RemoteViews expandView=new RemoteViews(context.getPackageName(), R.layout.status_bar_expanded);
expandView.setTextViewText(R.id.status_bar_track_name,sname);
NotificationCompat.Builder nc=new NotificationCompat.Builder(context,CHANNEL_ID);
NotificationManager nm=(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notifyIntent=new Intent(context,Player.class);
notifyIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, notifyIntent, 0);
nc.setContentIntent(pendingIntent);
nc.setSmallIcon(R.drawable.apollo_holo_dark_play);
nc.setAutoCancel(true);
nc.setPriority(NotificationCompat.PRIORITY_MAX);
nc.setOnlyAlertOnce(true);
nc.setDefaults(NotificationCompat.PRIORITY_MAX);
nc.setVibrate(new long[]{00});
nc.setContentTitle("Music Player");
nc.setContentText("Audio Control");
//nc.addAction(R.drawable.ic_pause_status,"pause",pendingIntent);
//nc.setStyle(new NotificationCompat.DecoratedCustomViewStyle());
nc.setCustomBigContentView(expandView);
setListners(expandView,context);
nm.notify(NOTIFICATION_ID_OPEN_ACTIVITY,nc.build());
}
private static void setListners(RemoteViews view,Context context){
Intent previous=new Intent(NOTIFY_PREVIOUS);
Intent next=new Intent(NOTIFY_NEXT);
Intent play=new Intent(NOTIFY_PLAY);
Intent pause=new Intent(NOTIFY_PAUSE);
PendingIntent pPrevious=PendingIntent.getBroadcast(context, 0, previous, PendingIntent.FLAG_UPDATE_CURRENT);
view.setOnClickPendingIntent(R.id.status_bar_prev,pPrevious);
view.setViewVisibility(R.id.status_bar_play, 1);
PendingIntent pNext=PendingIntent.getBroadcast(context,0,next,PendingIntent.FLAG_UPDATE_CURRENT);
view.setOnClickPendingIntent(R.id.status_bar_next,pNext);
PendingIntent pPause=PendingIntent.getBroadcast(context,0,pause,PendingIntent.FLAG_UPDATE_CURRENT);
//view.setImageViewResource(R.id.status_bar_play,R.id.status_bar_play);
view.setOnClickPendingIntent(R.id.status_bar_pause,pPause);
view.setImageViewResource(R.id.status_bar_pause,R.drawable.ic_play_status);
view.setViewVisibility(R.id.status_bar_pause,View.GONE);
//view.setViewVisibility(R.id.status_bar_pause,View.VISIBLE);
//view.setViewVisibility(R.id.status_bar_play,View.GONE);
PendingIntent pPlay=PendingIntent.getBroadcast(context,1,play,PendingIntent.FLAG_UPDATE_CURRENT);
view.setOnClickPendingIntent(R.id.status_bar_play,pPlay);
view.setViewVisibility(R.id.status_bar_play,View.VISIBLE);
//view.setViewVisibility(R.id.status_bar_prev,View.VISIBLE);
}
Класс NotificationReceiver
public class NotificationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
NotificationManager manger=(NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
if(intent.getAction().equals(NotificationGenerator.NOTIFY_PLAY)){
Intent playintent=new Intent();
playintent.setAction("play");
playintent.putExtra("playing",NotificationGenerator.NOTIFY_PLAY);
context.sendBroadcast(playintent);
}
else if(intent.getAction().equals(NotificationGenerator.NOTIFY_PAUSE)) {
Toast.makeText(context, "Pause", Toast.LENGTH_LONG).show();
}else if(intent.getAction().equals(NotificationGenerator.NOTIFY_NEXT)) {
Intent nextintent=new Intent();
nextintent.setAction("next");
nextintent.putExtra("nexting",NotificationGenerator.NOTIFY_NEXT);
context.sendBroadcast(nextintent);
}else if(intent.getAction().equals(NotificationGenerator.NOTIFY_PREVIOUS)) {
Toast.makeText(context, "Previous", Toast.LENGTH_LONG).show();
}
}
}
Класс Player.java
IntentFilter filter=new IntentFilter();
filter.addAction("play");
//filternext.addAction("next");
reciver= new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent !=null){
// if(intent.getStringExtra("play").equals("play")){
play();
remoteViews.setImageViewResource(R.drawable.ic_play_status,R.drawable.ic_pause_status);
remoteViews.setViewVisibility(R.id.status_bar_play,View.VISIBLE);
}
}
};
registerReceiver(reciver,filter);
IntentFilter filternext=new IntentFilter();
filternext.addAction("next");
reciver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent!=null){
next();
}
}
};
registerReceiver(reciver,filternext);
это мой код воспроизведения и паузы, но в панели уведомлений не меняется значок кнопки воспроизведения и паузы