如何在 Android 5.0+ 中为所有通知设置静音和振动?

How to mute sound and vibration for all notifications in Android 5.0+?

我想禁用所有传入通知的声音和振动。我不介意 phone 来电振动是否也被关闭。但是不应更改 phone 通话的用户音量设置。

多亏了 AudioManager,让通知静音变得很容易:

audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);

然而,禁用通知振动比预期的要难。

AudioManager 有这个已弃用的振动设置方法:

audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF)

然而,这似乎对我的 Android 5.0 设备没有影响,我找不到任何替代品。 :(

我知道 Lollipop 在 "Priority Mode" 周围引入了一些东西,但我不想 fiddle 使用模式。切换模式可能会产生一些其他副作用(基于用户的优先级偏好)。

关于如何在 Android 5.0+ 上静音通知声音和振动有什么想法吗?

由于没有人提出解决方案,我将回答我自己的问题。

看来真的没有办法达到我想要的效果,至少最新的Android版本是这样。所以我最终做了以下丑陋解决方法:

我现在通过 RINGER_MODE_SILENT 将整个 phone(传入的 phone 呼叫和通知)静音,但也通过 BroadcastReceiver 监听传入的 phone 呼叫。一旦检测到来电,RingerMode 就会恢复到之前的状态。这有效地导致了我想要实现的功能。

但是,我对此解决方法非常不满意。