1

我遇到了上述问题。

我使用这段代码来获取铃声和通知量

AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
int currentNotif = audio.getStreamVolume(AudioManager.STREAM_NOTIFICATION);

这运行得很好,直到我接到电话。它在调用情况下返回不同的值。(电话)。我的意思是,如果我没有电话,这些值是例如:

currentVolume = 7 
currentNotif  = 7

当我打电话时,这些值变成

currentVolume = 1 
currentNotif  = 7

或者

 currentVolume = 1 
currentNotif  = 1

我使用带有 android 4.1.2 的三星 Galaxy s3 设备。

问题是:

为什么会这样。是操作系统错误还是三星错误?

我将不胜感激任何帮助。

4

1 回答 1

0

这不是错误,而是设计使然。当 STREAM_VOICE_CALL 正在进行时,所有其他 STREAM 将以减小的音量进行回避。用户体验是这样的,在通话期间,所有其他未静音的音频流(音乐、铃声、通知)将以较低的音量播放。

在自定义 Android 操作系统时,操作系统、制造商或运营商可以引入此类 AudioPolicy 行为。对于这种特殊情况,我在所有 Note2(由三星添加)上都看到了它,但在 S3 上没有看到它。如果可以的话,请分享你的 S3 的运营商。

于 2013-10-15T05:51:23.780 回答