Android:如何禁用所有第三方应用程序从代码通知的声音?



我需要从代码中禁用第三方应用程序通知的所有声音。

像这样:当应用程序打开时 - 来自所有应用程序的所有通知都是静默的。当应用程序关闭时 - 声音设置将恢复到以前的状态。

如何实施?可以这样做吗?

似乎音频管理器就是您正在寻找的。

您可以像这样访问它(在本例中在活动中调用(:

val audioManager: AudioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager

要获取当前卷(以便以后可以还原它(,请使用

audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION)

当应用启动时,您可以通过调用

对于 SDK <23

audioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, 0, 0)

对于 SDK>= 23

audioManager.adjustStreamVolume(AudioManager.STREAM_NOTIFICATION, AudioManager.ADJUST_MUTE, 0)

根据官方文档的说明:

从 N 开始,将切换"请勿打扰"的音量调整是 除非应用程序已被授予"请勿打扰"访问权限,否则不允许。

如前所述,此答案需要声明ACCESS_NOTIFICATION_POLICY并主动请求访问权限。

最新更新