Как показать уведомления Android на экране, а также значок строки состояния?

Я чувствую, что это должно быть тривиально, но я не могу показать уведомление на экране телефона – оно отображается только в строке состояния вверху.

Для примера того, что я хочу сделать, вот как Facebook Messenger появляется на экране, когда вы получаете сообщение.

Экранное уведомление на Facebook

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

Код отображения уведомлений:

PendingIntent contentIntent = PendingIntent.getActivity(context, nextId++, intent, PendingIntent.FLAG_CANCEL_CURRENT); Notification.Builder builder = new Notification.Builder(context) .setContentTitle(title) .setContentText(description) .setContentIntent(contentIntent) .setSmallIcon(R.drawable.ic_stat_notification) .setLargeIcon(largeIcon) .setPriority(Notification.PRIORITY_DEFAULT) .setAutoCancel(true) .setDefaults(Notification.DEFAULT_ALL); if (android.os.Build.VERSION.SDK_INT >= 21) { builder.setColor(context.getResources().getColor(R.color.orange_500)) .setVisibility(Notification.VISIBILITY_PUBLIC); } Notification notification = builder.build(); notificationManager.notify(id, notification); 

Все, что считается, это действительно хорошая идея использовать NotificationCompat.Builder над Notification.Builder , не говоря уже о создании Notification вручную. Это дает вам хорошую обратную совместимость с изящной деградацией (вплоть до уровня API 4, иначе известного как «gadzooks, это старый»). AFAIK, это единственный способ получить некоторые вещи Android Wear, когда они используются совместно с NotificationManagerCompat . И в этом случае он, похоже, более счастлив с новыми функциями Android 5.0+.

В этом случае setPriority(NotificationCompat.PRIORITY_HIGH) на NotificationCompat.Builder , используемый с NotificationManagerCompat , предоставит вам уведомление о хедз-ап на Android 5.0+.