How to get a heads up notification.With below code i can only see three dots on status bar and a notification in notification bar.
Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 , intent,PendingIntent.FLAG_ONE_SHOT); Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.bip); Uri defaultSoundUri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.bip) .setContentTitle("Temp") .setPriority(NotificationCompat.PRIORITY_HIGH) .setContentText(message) .setAutoCancel(true) .setSound(defaultSoundUri) .setContentIntent(pendingIntent); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(0, notificationBuilder.build());
Advertisement
Answer
I was having the same problem, but I was using the newer NotificationCompat.Builder()
call which requires a channel ID from a NotificationChannel
.
The notification will only appear as a heads-up notification if the NotificationChannel
is created with an importance value of NotificationManager.IMPORTANCE_HIGH
:
NotificationChannel channel = new NotificationChannel("channel01", "name", NotificationManager.IMPORTANCE_HIGH); // for heads-up notifications channel.setDescription("description"); // Register channel with system NotificationManager notificationManager = getSystemService(NotificationManager.class); notificationManager.createNotificationChannel(channel);
Show the heads-up notification:
Notification notification = new NotificationCompat.Builder(this, "channel01") .setSmallIcon(android.R.drawable.ic_dialog_info) .setContentTitle("Test") .setContentText("You see me!") .setDefaults(Notification.DEFAULT_ALL) .setPriority(NotificationCompat.PRIORITY_HIGH) // heads-up .build(); NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(0, notification);