Подтвердить что ты не робот

Кнопки уведомления Android не отображаются

Это мой код для настройки уведомления с помощью кнопок.

Intent receiverIntent = new Intent(ctx, ResponsivePrefsActivity.class);
        PendingIntent pReceiverIntent = PendingIntent.getActivity(ctx, 1, receiverIntent, 0);
        Intent clearIntent = new Intent(ctx, ResponsivePrefsActivity.class);
        clearIntent.setAction("clear");
        PendingIntent pClearIntent = PendingIntent.getActivity(ctx, 1, clearIntent, 0);

        Intent colorsIntent = new Intent(ctx, ResponsivePrefsActivity.class);
        colorsIntent.setAction("colors");
        PendingIntent pColorsIntent = PendingIntent.getActivity(ctx, 1, colorsIntent, 0);

        Intent animationIntent = new Intent(ctx, ResponsivePrefsActivity.class);
        animationIntent.setAction("animation");
        PendingIntent pAnimation = PendingIntent.getActivity(ctx, 1, animationIntent, 0);

        Notification.Builder builder;
        builder = new Notification.Builder(ctx).setSmallIcon(R.drawable.ic_launcher).setAutoCancel(false)
                .setContentTitle("Draw Me: A Live Wallpaper").setContentText("Never get bored again!")
                .setContentIntent(pReceiverIntent).addAction(R.raw.ic_menu_close_clear_cancel, "Clear", pClearIntent)
                .addAction(R.raw.ic_menu_edit, "Colors", pColorsIntent).addAction(R.raw.ic_menu_play_clip, "Animation", pAnimation);
        Notification notification = builder.build();

        NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);

        notificationManager.notify(0, notification);

Появляется уведомление, но кнопки этого не делают. У моего устройства есть Android 4.1.1 Я установил это уведомление во Фрагменте. Что я делаю не так? Спасибо!

4b9b3361

Ответ 1

Позвольте мне рассказать вам кое-что, что действительно неудобно. Если в вашем текущем уведомлении есть что-либо, вы не увидите кнопки. Обычно это происходит, когда у вас есть телефон, подключенный к ПК через USB. Надеюсь, что это решает вашу проблему.

Ответ 2

Просто напоминание для тех, кто имеет аналогичную проблему. В соответствии с Android Руководство по уведомлениям уведомления могут отображаться в двух стилях:

  • Обычный вид, в котором кнопки действий не отображаются по умолчанию (и пользователю необходимо развернуть уведомление, чтобы они появлялись)
  • Большой вид, который отображается, если уведомление сначала в списке уведомлений, или пользователь расширил уведомление.

Поэтому, чтобы заставить уведомление появляться в Big View, все, что нам нужно сделать, это просто поместить его в верхнюю часть списка уведомлений. Это можно сделать, установив свойство "Когда" на 0, что делает его самым старым среди уведомлений! (Иногда, возможно, мы этого не хотим). Поэтому позвоните

setWhen(0)

к вашему уведомлению, и все готово.

Ответ 3

Кнопки не будут отображаться, если в списке присутствует любое текущее уведомление, например, управление медиаплеером или параметры переключателя IME, когда вы редактируете текст.

К счастью, это можно преодолеть, просто установив приоритет уведомления приятным и высоким. Я только использовал Notification.PRIORITY_MAX, чтобы обойти это, но PRIORITY_HIGH, похоже, тоже работает. Установите его так:

Notification notification = new Notification.Builder(myContext)
.setContentTitle(res.getString(R.string.my_title))
.setPriority(Notification.PRIORITY_MAX)
//The rest of your options
.build();

Ответ 4

Просто сделайте это:

.setPriority(Notification.PRIORITY_MAX)
.setWhen(0)

полный код:

Notification noti = new Notification.Builder(this)
            .setContentTitle("New mail from " + "[email protected]")
            .setContentText("Subject").setSmallIcon(R.drawable.ic_launcher)
            .setContentIntent(pIntent)
            .setPriority(Notification.PRIORITY_MAX)
            .setWhen(0)
            .addAction(R.drawable.ic_launcher, "Call", pIntent)
            .addAction(R.drawable.ic_launcher, "More", pIntent)
            .addAction(R.drawable.ic_launcher, "And more", pIntent).build();

Ответ 5

Просто выполните некоторые изменения, подобные этому в code

Notification n = new Notification.Builder(this)
                .setSmallIcon(R.drawable.icon)
                .setContentTitle("New mail from " + "[email protected]")
                .setContentText("Subject")
                .setContentIntent(pIntent).setAutoCancel(true)
                .setStyle(new Notification.BigTextStyle().bigText(longText))
                .build();

        NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        // Hide the notification after its selected

        notificationManager.notify(0, n);

Добавьте, что вам нужно в этом.. Надеюсь, это поможет вам.