读出报警音量

Read out Alarm volume

我试着用下面的方法读出报警音量,但我总是得到错误的值。铃声音量总是正确的!! 这发生在每部智能手机、HTC、三星、索尼甚至虚拟设备上。可能是什么问题?

private AudioManager amanager;

@Override
public void onCreate(Bundle savedInstanceState) 
{

    amanager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);

}



int volume = 3;
int alarm = 3;

try{
    volume = amanager.getStreamVolume(amanager.getStreamVolume(AudioManager.STREAM_RING));
    alarm = amanager.getStreamVolume(amanager.getStreamVolume(AudioManager.STREAM_ALARM));
    Log.i("!!!!!!!!!!", "Activity!!,  Volume ringer: " + volume + " Vol Alarm: " + alarm);

}catch(IllegalArgumentException e){}

我得到的铃声音量值有误。方法 getStreamVolume (int streamType) 得到一个 int 和 returns int。当你写:

alarm = amanager.getStreamVolume(amanager.getStreamVolume(AudioManager.STREAM_ALARM));

你实际上是在获取闹钟的音量(假设是 X),然后将值 alarm = amanager.getStreamVolume(X);

传递给 alarm

所以结果出乎意料。
volumealarm 的值更改为 -

volume = amanager.getStreamVolume(AudioManager.STREAM_RING);
alarm = amanager.getStreamVolume(AudioManager.STREAM_ALARM);