Skip to content Skip to sidebar Skip to footer

Android Oreo Notification Keep Making Sound Even If I Do Not Set Sound. On Older Version, Works Perfectly

So I am making my app compatible with Oreo and facing issue with notification. I added notification channel according to documentation and everything is working smooth except notif

Solution 1:

Take a look at the notification channel settings (swipe your notification and press the settings icon under it and then select your channel). Those settings are set the first time you create the channel and then not modified unless you do it manually in the device (at least that is my experience from uninstalling and reinstalling my app to see what settings I get by default).

Basically, channel.setSound(null, null)will only have effect when you create the channel on a fresh installation. That might be what they try to explain in the official guide:

Attempting to create an existing notification channel with its original values performs no operation

If you tried to follow that guide and set NotificationManager.IMPORTANCE_HIGH and didn't use channel.setSound(null, null), the channel would get importance level Urgent Make sound and pop on screen with the default sound.

Solution 2:

^Benjamin answer works but he is missing some important detail! You must change your channel ID each time you adjust your code or Oreo will not make the changes. Not sure why.

My code below and you can see where the chnage must be made with this <-------here

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

        StringchannelID="My Channel I";  <-------here
        StringappName= mContext.getResources().getString(R.string.app_name);


        NotificationCompat.BuildernotificationCompatBuilder=newNotificationCompat.Builder(mContext );
        notificationCompatBuilder
                .setOngoing(true)
                .setContentTitle(mContext.getResources().getString(R.string.app_name))
                .setContentText(mContext.getString(R.string.clocked_in))
                .setSmallIcon(R.drawable.ic_action_name)
                .setChannelId(channelID)
                .setSound(null);

        NotificationManagernotificationManager= (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);

        NotificationChannelnotificationChannel=newNotificationChannel(channelID, appName, NotificationManager.IMPORTANCE_LOW);
        notificationChannel.setSound(null, null);
        notificationManager.createNotificationChannel(notificationChannel);
        notificationManager.notify(ONGOINGNOTIFICATION_ID, notificationCompatBuilder.build());

    }

Solution 3:

Replace your code with this

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                /* Create or update. */NotificationChannelchannel=newNotificationChannel("channel_01",
                "Playback Notification",
                NotificationManager.IMPORTANCE_LOW);
        channel.setSound(null, null);
        mNotificationManager.createNotificationChannel(channel);
        mBuilder.setChannelId("channel_01");
    }

Solution 4:

My scene is the first time there is a sound, and the update notification does not require a sound.

I use this setOnlyAlertOnce() method

Reference: https://developer.android.com/training/notify-user/build-notification#Updating

Test pass version 26

Post a Comment for "Android Oreo Notification Keep Making Sound Even If I Do Not Set Sound. On Older Version, Works Perfectly"