即使电话音量不为零,AudioManager也会将流量返回为零

时间:2017-03-12 18:25:38

标签: android android-service android-audiomanager

如果手机未处于零音量模式(静音模式或振动模式),我会尝试在我的应用中强制执行某些操作。

这是我的代码:

audioManager =  (AudioManager)getSystemService(Context.AUDIO_SERVICE);
if (audioManager.getStreamVolume(AudioManager.STREAM_RING) == 0 )
                {
                    Log.d("Logmessage"," Audio stream ring volume : "+ audioManager.getStreamVolume(AudioManager.STREAM_RING));

                    return;
                }

//Further logic

然而,if块之后的逻辑永远不会被执行,因为我总是将振铃器流量调为零。我还检查了振铃器模式(它总是返回RINGER_MODE_VIBRATE)。

有趣的是,我只在Kitkat操作系统以及我的摩托罗拉和联想手机上观察到这一点。这款逻辑适用于拥有Android 6.0的三星和联想手机。

任何人都可以告诉我我错过了什么,我的支票有什么问题? 我在服务中使用此逻辑

1 个答案:

答案 0 :(得分:1)

提示:您可以查看音频系统中的当前音量和所选设备

var twoPairArray = []; //array to be returned
var twoPairObj = {}; //temp obj for manipulation
for(var key in targetObj) //target obj has the keys to be processed
{
    if(Object.keys(twoPairObj).length == 2) //does temp obj have enough keys?
    {
        twoPairArray.push(JSON.parse(JSON.stringify(twoPairObj))); //sloppy clone of temp obj
        twoPairObj = {}; //reset the temp obj.
    }
    twoPairObj[key] = targetObj[key]; //temp obj being manipulated into this craziness
}