Уведомление не отображается



Case study: мне нужна программа, которая добавит уведомление на android. И когда кто-то нажимает на уведомление, это должно привести их к моей второй деятельности.



Я установил код. Уведомление должно работать, но по какой-то причине он не работает. Элемент Notification не показывает вообще. Не знаю, чего мне не хватает.



код этих файлов:



        Notification n = new Notification.Builder(this)
.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);
484   4  

4 ответов:

как @dmmh сказал код не будет работать без и значок. Поэтому после изменения кода с помощью

.setSmallIcon (R. drawable.значок)

проект отлично работает перед oreo.

но форма oreo уведомление нужно NotificationChannel и NotificationCompat.Builder(this) устарело, попробуйте:

private NotificationManager mNotificationManager;

NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(mContext.getApplicationContext(), "notify_001");
        Intent ii = new Intent(mContext.getApplicationContext(), RootActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, ii, 0);

        NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle();
        bigText.bigText(verseurl);
        bigText.setBigContentTitle("Today's Bible Verse");
        bigText.setSummaryText("Text in detail");

        mBuilder.setContentIntent(pendingIntent);
        mBuilder.setSmallIcon(R.mipmap.ic_launcher_round);
        mBuilder.setContentTitle("Your Title");
        mBuilder.setContentText("Your text");
        mBuilder.setPriority(Notification.PRIORITY_MAX);
        mBuilder.setStyle(bigText);

         mNotificationManager =
                (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);


        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel channel = new NotificationChannel("notify_001",
                    "Channel human readable title",
                    NotificationManager.IMPORTANCE_DEFAULT);
            mNotificationManager.createNotificationChannel(channel);
        }

        mNotificationManager.notify(0, mBuilder.build());

на самом деле ответ @tato469 не кажется правильным. Опять же, ваш вопрос слишком расплывчат, потому что вы не упоминаете, что не так или не работает.

глядя на ваш код, я предполагаю, что Notification просто не показывает.

ваше уведомление не отображается, потому что вы не предоставили значок. Несмотря на то, что в документации SDK не упоминается, что это требуется, на самом деле это очень так и ваш Notification не покажет без один.

addAction доступно только с 4.1. До этого вы бы использовали PendingIntent начать Activity. Вы, кажется, указать PendingIntent, Так что ваша проблема заключается в другом. Логически, нужно сделать вывод, что это недостающий значок.

вы пропустили маленький значок. Я сделал ту же ошибку, и вышеприведенный шаг разрешил ее.

согласно официальной документации: А уведомления объект должен содержать следующее:

  1. небольшой значок, установленный setSmallIcon ()

  2. заголовок, установленный setContentTitle()

  3. текст детали, установленный мимо setContentText ()

  4. на Android 8.0 (уровень API 26) и выше, действительный идентификатор канала уведомления, установленный setChannelId () или предоставлено в NotificationCompat.Конструктор Builder при создании канала.

см.http://developer.android.com/guide/topics/ui/notifiers/notifications.html

Я думаю, что вы забыли

addAction(int icon, CharSequence title, PendingIntent intent)

посмотреть здесь Добавить Действие

Comments

    Ничего не найдено.