2013-04-24 3 views
3

스피커를 켜고 최대 볼륨으로 설정하고 싶습니다. 내 PhoneStateListener에서 수신 통화를 가로 채고 있으며 수신/발신 통화에 정상적으로 작동합니다.걸려 오는 전화 안드로이드에서 스피커를 켜십시오

두 가지 특정 수신 번호에 대해서만이 기능을 켜기를 바랍니다.

case TelephonyManager.CALL_STATE_OFFHOOK: 
     if (incomingNumber.equals(strRegisterNumber1) || incomingNumber.equals(strRegisterNumber2)) 
     { 
      AudioManager audioManager = (AudioManager) contextMember.getSystemService(Context.AUDIO_SERVICE); 
      audioManager.setSpeakerphoneOn(true); 
      audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0); 

     } 
     break; 

은 if 문없이 잘 작동하지만 스피커가 꺼진 상태로 자신의 경우를 int로 :

이 내 코드입니다.

내가 잘못하고있는 일이나 내 목표를 달성하는 방법을 알려주십시오.

도움 주셔서 감사합니다.

incomingNumber.equals(strRegisterNumber1) || incomingNumber.equals(strRegisterNumber2) 

사용

incomingNumber.contains(strRegisterNumber1) || incomingNumber.contains(strRegisterNumber2) 

+0

그래서 내가 제대로 이해한다면, 스피커 볼륨 코드가 작동/설정을 가능하게 ... 희망이 도움이? 세 문자열을 모두 로깅하여 포함 된 내용을 확인해 보셨습니까? – Michael

+0

예. 두 개의 문자열. 그것은 이상한 일입니다. 그들은 내가 원하는만큼 들어오는 번호를 포함하고 있습니다. 나는 그게 문제라는 것을 이해하지 못한다. – OlejkaKL

+0

나중에 동일한 if 문을 사용하고 true를 반환합니다! – OlejkaKL

답변

0

Instaed 들어오는 횟수는 국가 코드와 국가 코드 + 또는 00가있을 수 있습니다 때문입니다. 따라서 수신 전화 번호에 필요한 번호가 포함되어 있는지 확인해야합니다. 는 문자열 비교 항상 false를 반환입니다 -

+0

시도해보십시오. 변경 없음. 어쨌든 고마워. – OlejkaKL

+2

'if' 문 앞에'incomingNumber','strRegisterNumber1' 및'strRegisterNumber2'의 값을 확인/인쇄/기록 했습니까? –

관련 문제