Я использую Galaxy Nexus с Android 4.0, я установил беззвучный режим на вибрацию в настройках. Я использую NotificationManager.notify для отправки уведомления. Я не устанавливаю Notification.vibrate, я даже использую myNotification.defaults &= ~Notification.DEFAULT_VIBRATE, чтобы отключить вибрацию. Но он все еще вибрирует после вызова NotifcationManager.notify. Может ли кто-нибудь сказать мне, как отключить вибрацию уведомления в режиме вибрации?
Как отключить стандартную вибрацию уведомления
Ответы (5)
используйте следующий код:
notification.defaults = Notification.DEFAULT_LIGHTS;
//or
notification.defaults = Notification.DEFAULT_SOUND;
person
Hai Bo Wang
schedule
14.03.2012
Для динамического управления настройками уведомлений:
notification.defaults = Notification.DEFAULT_LIGHTS;
if(/*sound enabled*/)
notification.defaults |= Notification.DEFAULT_SOUND;
if(/*vibration enabled*/)
notification.defaults |= Notification.DEFAULT_VIBRATE;
person
Hartok
schedule
20.08.2012
Чтобы отключить вибрацию при приходе уведомления, я использую этот код.
notification.vibrate = new long[] { -1 };
И работает отлично.
person
Bunny
schedule
08.04.2016
Сначала сохраните значение кнопки настройки вибрации в общих настройках. а затем поместите этот код там, где ваше уведомление получено.
SharedPreferences preferences = context.getSharedPreferences("VIBRATE",
0);
boolean vibrate = preferences.getBoolean("vibrate", true);
if (vibrate) {
notification.defaults |= Notification.DEFAULT_VIBRATE;
}
person
Kishan Dhamat
schedule
25.09.2013
Это также можно сделать с помощью следующей команды adb для конкретного пакета.
adb shell
cmd appops set package_name VIBRATE ignore
Приведенная выше команда отключит все вибрации для пакета package_name.
person
nandal
schedule
27.04.2020