Notification cancelled immediately on Samsung Galaxy S6 android 7

170 Views Asked by At

I created a notification using this code:

Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

final int notificationID = NotificationID.getID();

PendingIntent pendingIntent = PendingIntent.getActivity(this, notificationID, intent, PendingIntent.FLAG_ONE_SHOT);

Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.notif_icon)
        .setContentTitle(messageTitle)
        .setStyle(new NotificationCompat.BigTextStyle().bigText(messageTitle + "\n" +messageBody))
        .setContentText(messageTitle + " " +messageBody)
        .setAutoCancel(true)                
        .setSound(defaultSoundUri)
        .setContentIntent(pendingIntent);

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(notificationID, notificationBuilder.build());

This works well on many devices, however on a Samsung Galaxy S6 android 7 the notification is cancelled immediately.

I tried putting the ongoing flag and the notification remains visible, however this is not a solution because the user won't be able to cancel it be swiping the notification.

Any idea what might cause the problem?

1

There are 1 best solutions below

0
On

Remove setAutoCancel(true) from your code.

setAutoCancel()

Notification.Builder setAutoCancel (boolean autoCancel) Make this notification automatically dismissed when the user touches it.

Reference: https://developer.android.com/reference/android/app/Notification.Builder.html#setAutoCancel(boolean)