Android Audio Manager в классе приемника

Не переключаться обратно в режим, который использовал пользователь. Я имею в виду, когда телефон находится в беззвучном режиме, и я звонил на некоторые выбранные номера, но он не переключается обратно в нормальный режим, когда телефон находится в режиме ожидания. вот мой кусок кода........

if(IncomingNumber.equals(WhitelistedNumbers)){
                                    am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

                                 System.out.println("Number Matches......!");
                                 System.out.println("WhitelistedNumber(s): "+WhitelistedNumbers);


                                }else{
                                    System.out.println("No Match(s) found.....!");

                                }

и чтобы вернуться в нормальный режим, я использую........

 case TelephonyManager.CALL_STATE_IDLE:
                 am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

                System.out.println("Set to Default Ringer Mode....!");                  
                break;

Заранее спасибо, если есть какие-либо предложения по устранению проблемы........


person Mayank Nema    schedule 18.02.2014    source источник


Ответы (1)


Вам нужно сохранить предыдущий режим звонка в переменной, а затем восстановить его из этой переменной.

int previousMode;
if(IncomingNumber.equals(WhitelistedNumbers))
{
    previousMode = am.getRingerMode();
    am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    ....
}

и восстановить:

am.setRingerMode(previousMode);
person Merlevede    schedule 18.02.2014
comment
не работает, так как мой TelephonyManager.CALL_STATE_IDLE: метод вызывается перед переходом в состояние ожидания, означает, что в то время, когда телефон находится в состоянии звонка, поэтому предыдущий сохраненный режим не работает, как если бы, он молчит, а не молчит после завершения вызова. ....................что делать?????????? @Мерлеве - person Mayank Nema; 18.02.2014