Уведомление не отображается
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);
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, Так что ваша проблема заключается в другом. Логически, нужно сделать вывод, что это недостающий значок.
вы пропустили маленький значок. Я сделал ту же ошибку, и вышеприведенный шаг разрешил ее.
согласно официальной документации: А уведомления объект должен содержать следующее:
небольшой значок, установленный setSmallIcon ()
заголовок, установленный setContentTitle()
текст детали, установленный мимо setContentText ()
на 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