Как отключить вибрацию уведомления по умолчанию - PullRequest
2 голосов
/ 14 марта 2012

Я использую Galaxy Nexus с Android 4.0, я установил тихий режим, чтобы вибрировать в настройках.Я использую NotificationManager.notify для отправки уведомления.Я не устанавливаю Notification.vibrate, я даже использую myNotification.defaults & = ~ Notification.DEFAULT_VIBRATE, чтобы отключить вибрацию.Но он все еще вибрирует после вызова NotifcationManager.notify.Может кто-нибудь сказать мне, как отключить вибрацию уведомления в режиме вибрации?

Ответы [ 4 ]

4 голосов
/ 14 марта 2012

используйте следующий код:

notification.defaults = Notification.DEFAULT_LIGHTS;
//or 
notification.defaults = Notification.DEFAULT_SOUND;
1 голос
/ 08 апреля 2016

Чтобы отключить вибрацию при получении уведомления, я использую этот код.

notification.vibrate = new long[] { -1 };

И он отлично работает.

1 голос
/ 20 августа 2012

Для динамического управления настройками уведомлений:

notification.defaults = Notification.DEFAULT_LIGHTS;

if(/*sound enabled*/)
    notification.defaults |= Notification.DEFAULT_SOUND;

if(/*vibration enabled*/)
    notification.defaults |= Notification.DEFAULT_VIBRATE;
0 голосов
/ 25 сентября 2013

Сначала сохраните значение вашей кнопки настройки вибрации в общих настройках. а затем разместите этот код там, где получено ваше уведомление.

SharedPreferences preferences = context.getSharedPreferences("VIBRATE",
            0);
boolean vibrate = preferences.getBoolean("vibrate", true);
if (vibrate) {
        notification.defaults |= Notification.DEFAULT_VIBRATE;
    }
...