Я просто делюсь кодом генерации уведомлений для всех типов ОС Android.

Я также страдал от отображения уведомлений на всех устройствах с версией Android, потому что Android быстро запускает новую версию и некоторые изменения вносятся в уведомления в новой версии Nougat и Oreo для Android.

Так что больше никаких дискуссий, потому что приходят уведомления.

Итак, начнем

Мы используем API класса Notification Compact из библиотеки поддержки Android. Эти API позволяют добавлять функции, доступные только в более новых версиях Android, при этом обеспечивая совместимость с Android 4.0 (уровень API 14).

Создать базовое уведомление

Намерение намерение = новое намерение(контекст, MainActivity.class);
намерение.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(контекст, 0, намерение, 0);

Uri uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, "CHANNEL_ID")
.setSmallIcon(R.drawable.ic_home)
.setContentTitle("Title")
.setContentText(context.getString (R.string.lorem_ipsum))
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(context.getString(R.string.lorem_ipsum)))
.setPriority(NotificationCompat.PRIORITY_DEFAULT )
.setContentIntent(pendingIntent)
.setSound(uri)
.setColor(ContextCompat.getColor(context, R.color.colorPrimary))
.setAutoCancel(true);

if (Build.VERSION.SDK_INT ›= Build.VERSION_CODES.O) {
CharSequence name = «Имя канала»;
String description = «Описание канала»;
Канал NotificationChannel = new NotificationChannel( CHANNEL_ID, name, NotificationManagerCompat.IMPORTANCE_DEFAULT);
channel.setDescription(description);
// Зарегистрируйте канал в системе
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE) ;
notificationManager.createNotificationChannel(канал);
}

NotificationManagerCompatnotificationManager = NotificationManagerCompat.from(context);
notificationManager.notify((int) System.currentTimeMillis(), mBuilder.build());

Ой! Вот и все.

Для получения дополнительной информации вы можете получить информацию на странице разработчика https://developer.android.com/training/notify-user/build-notification.html.