2015-06-17 3 views
0

Я пытаюсь прочитать громкость сигнала тревоги следующим образом, но всегда получаю неправильные значения. Объем звонка всегда правильный! Это происходит на каждом смартфоне, HTC, Samsung, Sony и даже на виртуальном устройстве. В чем может быть проблема?Считывание Тревожный громкость

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){} 

ответ

1

Я получал неправильные значения для громкости звонка. Метод getStreamVolume (int streamType) получает int и возвращает int. Когда вы пишете:

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

вы фактически получаете громкость сигнала тревоги (позволяет сказать, что X), а затем переходя к alarm значение alarm = amanager.getStreamVolume(X);

, так что результат является неожиданным.
изменения значения volume и alarm к -

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

Боже мой, спасибо много !! – user1390816

Смежные вопросы