Android setStreamVolume到ZERO在Android 4中不起作用

时间:2012-07-01 16:53:50

标签: android android-audiomanager

我注意到在Android 4.x下设置铃声音量为0是不可能的。如果我执行此代码然后转到设置 - >声音 - >我可以看到的卷设置为1.我

audiomanager.setStreamVolume(AudioManager.STREAM_RING, 0, 0);
你知道为什么吗? 我知道我可以使用audiomanager.setRingerMode(RINGER_MODE_SILENT),但让我很生气!因为在这种情况下,我必须“记住”振动是打开还是关闭以再次激活声音。

当然,所有这些都适用于其他Android版本。

2 个答案:

答案 0 :(得分:1)

不要使用setStreamMute(),因为它会对您的流程生命周期产生奇怪的副作用。请参阅文档:

  

静音命令受到客户端进程死亡的保护:如果流上有活动静音请求的进程终止,则此流将自动取消静音。

我担心使用setRingerMode()RINGER_SILENTRINGER_VIBRATE是可行的方法,这会产生将流量调零的效果

答案 1 :(得分:0)

尝试setStreamMute而不是相当于将音量设置为0。