如何关闭通知的默认振动

时间:2012-03-14 03:08:43

标签: android notifications vibration

我在Android 4.0中使用Galaxy Nexus,我将静音模式设置为在“设置”中振动。我使用NotificationManager.notify发送通知。我没有设置Notification.vibrate,我甚至使用myNotification.defaults& = ~Notification.DEFAULT_VIBRATE来禁用振动。但是在调用NotifcationManager.notify之后它仍然会振动。 谁能告诉我如何在振动模式下关闭通知的振动?

5 个答案:

答案 0 :(得分:3)

使用以下代码:

notification.defaults = Notification.DEFAULT_LIGHTS;
//or 
notification.defaults = Notification.DEFAULT_SOUND;

答案 1 :(得分:1)

动态管理通知设置:

notification.defaults = Notification.DEFAULT_LIGHTS;

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

if(/*vibration enabled*/)
    notification.defaults |= Notification.DEFAULT_VIBRATE;

答案 2 :(得分:1)

要在收到通知时禁用“振动”,我会使用此代码。

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

它完美运作。

答案 3 :(得分:0)

首先在共享首选项中存储振动设置按钮的值。然后将此代码放在收到通知的位置。

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

答案 4 :(得分:0)

对于特定的软件包,也可以使用以下adb命令来完成

adb shell
cmd appops set package_name VIBRATE ignore

以上命令将禁用package_name软件包的所有振动。