Notification vibrate issue for android 8.0

10,846

Solution 1

This is a bug on Android 8 notification system. I've tinkered with different combinations of enableVibration with setVibrationPattern(null) but it does not work.

Only solution that stops the vibration for me is this:

mNotificationChannel.setVibrationPattern(new long[]{ 0 });
mNotificationChannel.enableVibration(true);

FYI, even if I set a vibration pattern with 0, but set enableVibration to false, it vibrates.

Solution 2

In addition to Ahmadul Hoq's answer, which did work for me, I would like to add that you may need to remove the app and reinstall it before the vibration changes take place. The channel keeps its initial settings and stays alive if the app is killed - so changes may not be applied if you simply build and run.

Solution 3

I was initially using NotificationManager.IMPORTANCE_DEFAULT and could not get the vibrating to stop. Using NotificationManager.IMPORTANCE_LOW instead resolved the issue. NotificationManager.IMPORTANCE_MIN would also work; see here: https://developer.android.com/training/notify-user/channels#importance

Solution 4

This function worked for me. With it I create the notification channel in what fully disable lights, vibration and sound.

    private void createNotificationChannel() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel serviceChannel = new NotificationChannel(
                    CHANNEL_ID,
                    "Foreground Service Channel",
                    NotificationManager.IMPORTANCE_DEFAULT
            );

            serviceChannel.setVibrationPattern(new long[]{ 0 });
            serviceChannel.enableVibration(true);
            serviceChannel.enableLights(false);
            serviceChannel.setSound(null, null);

            NotificationManager manager = getSystemService(NotificationManager.class);
            manager.createNotificationChannel(serviceChannel);
        }
    }

Solution 5

add notificationChannel.setVibrationPattern(new long[]{ 0L }); uninstall the application or clear App Data. run it again It will work! reason: channel_id already registered for application.

Share:
10,846
Manish
Author by

Manish

I am software developer having 5+ year experience working on java, j2me, Blackberry j2me, Android

Updated on July 26, 2022

Comments

  • Manish
    Manish almost 2 years

    i create notification channel to show notification in android 8.0 as below

     NotificationChannel uploadChannel = new NotificationChannel(Constants.NOTIFICATION_CHANNEL_UPLOAD_ID,"Uploads", NotificationManager.IMPORTANCE_LOW);
     uploadChannel.enableLights(false);
     uploadChannel.setDescription("Uploads Channel");
     notificationManager.createNotificationChannel(uploadChannel);
    

    each time i show notification the phone vibrate many times. i disable vibrate from notification channel as below

    uploadChannel.enableVibration(false);
    

    i create notification as below

     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, Constants.NOTIFICATION_CHANNEL_UPLOAD_ID);
    

    but it is not working phone is vibrating with each notification.

  • Poorya
    Poorya almost 6 years
    if it doesn't work refer to Roland van der Linden's Answer
  • Kirill Reznikov
    Kirill Reznikov almost 6 years
    Did they fix it? Will this hack be working till the next "P" version?
  • Ahmadul Hoq
    Ahmadul Hoq almost 6 years
    @KirillReznikov Just tested on Android 9 and this hack still works, and they haven't fixed it yet..
  • behelit
    behelit over 5 years
    Does this mean that we can no longer give the user the option to change notification vibration settings? I wonder how Whatsapp is doing it?
  • Roland van der Linden
    Roland van der Linden over 5 years
    @behelit Developers are very likely to apply Admadul's changes, run the app and test the outcome. In this specific case, the changes do not apply directly which is confusing during development. I'm fairly sure you could also reboot the device and have a similar effect. I don't think this means users can't change notification vibration settings anymore.
  • Kathir
    Kathir over 5 years
    Alternatively, you can just Clear App Data
  • Mostafa Arian Nejad
    Mostafa Arian Nejad over 4 years
    If you want to apply changes made to a notification channel on production and to users that currently have your app installed, change your channel id to a new one.