I am currently trying to get a header notification on a Nexus S (API 29), but with no success. I've seen some threads with various solutions, but none of them worked. The code is as follows:
Context applicationContext = getApplicationContext();
NotificationCompat.Builder builder = new NotificationCompat.Builder(applicationContext, CHANNEL_ID)
.setDefaults(NotificationCompat.DEFAULT_ALL)
.setDefaults(NotificationCompat.DEFAULT_SOUND)
.setSmallIcon(R.drawable.ic_account_circle)
.setContentTitle(notificationTitle)
.setContentText(notificationTextBody)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setLights(Color.RED, 3000, 3000);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(applicationContext);
int notificationId = new Random().nextInt();
//launches the notification on the device
notificationManager.notify(notificationId, builder.build());
I have tried setting sound on, vibrations on, to set the priority as high or max. I have even used the method setFullScreenIntent
, separately and all at once, but nothing accomplished, what I seek.
on Android 8+ you have to create notification channel, like in DOC
note that channel also have importance. if you want a heads-up notification you have to set high priority for this channel, DOC