Уведомление не показывает все кнопки действий - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь создать простое уведомление для музыкального плеера с 3 кнопками: «Пауза», «Предыдущая» и «Следующая».Мой код показывает только один из них, который является следующим.Любые предложения, где я сделал ошибку?It only shows one action button

Intent intent = new Intent(this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

    Intent playNextIntent = new Intent(this, BroadcastReceiver.class);
    playNextIntent.setAction("NEXT_ACTION");
    PendingIntent nextPendingIntent = PendingIntent.getBroadcast(this, 1, playNextIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    Intent pauseIntent = new Intent(this, BroadcastReceiver.class);
    pauseIntent.setAction("PAUSE_ACTION");
    PendingIntent pausePendingIntent = PendingIntent.getBroadcast(this, 2, pauseIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    Intent playPreviousIntent = new Intent(this, BroadcastReceiver.class);
    playPreviousIntent.setAction("PREVIOUS_ACTION");
    PendingIntent prevPendingIntent = PendingIntent.getBroadcast(this, 3, playPreviousIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, "D")
            .setSmallIcon(R.drawable.ic_launcher_background) //notification icon
            .setContentTitle("Simple Music Player")
            .setContentText("Currently playing: " + mediaPlayerHolder.getSongsList().get(songIterator).getSongName())
            .setPriority(NotificationCompat.PRIORITY_MAX)
            .setWhen(0)
            .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) 
            .setOngoing(true) //user can't remove notification
            .addAction(R.drawable.ic_previous, "Previous", prevPendingIntent) // #0
            .addAction(R.drawable.ic_pause, "Pause", pausePendingIntent)  // #1
            .addAction(R.drawable.ic_next, "Next", nextPendingIntent)     // #2
            .setStyle(new NotificationCompat.BigTextStyle())
            .setContentIntent(pendingIntent); //on click go to app intent
    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);

    // notificationId is a unique int for each notification that you must define
    notificationManager.notify(1, mBuilder.build()); //show notification

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

В вашем коде нет ничего плохого.Если вы запустите свой код в эмуляторе на стоковом Android, действия будут отображаться, как и ожидалось.

На Android отображение уведомлений осуществляется лаунчером.Как и любые другие приложения, пусковые установки могут содержать ошибки.В этом случае есть ошибка в панели запуска, которую вы используете для отображения нескольких действий в уведомлении.

0 голосов
/ 11 июня 2018

Рекомендую попробовать пример универсального музыкального проигрывателя Google. Вот ссылка GitHub .Он включает в себя все, что вы хотите в уведомлениях и имеет последние функции уведомлений Android Oreo просто попробуйте.

...