2010-04-18 2 views
9

서비스에서 audiomanager.setSpeakerphoneOn(true)을 사용하여 프로그래밍 방식으로 스피커폰을 켜려고했지만 작동하지 않는 것 같아요. 이유를 모르겠습니다. 다른 조치를 취해야합니까?프로그래밍 방식으로 안드로이드 설정 스피커폰

감사합니다.

+0

비슷한 질문을 물었다 [여기] 대답했다 [1] [1] : http://stackoverflow.com/questions/8617381/turn-on-speakerphone-whenever-an-outgoing- call-made/21328490 # 21328490 –

답변

13

확인하십시오. 매니페스트 파일에이 작업을 수행 할 권한이 있는지 확인하십시오.

나는 당신이 전화가 자동으로 스피커폰을 끄 전화를 걸 때 안드로이드 4.1 이상에서 MODIFY_AUDIO_SETTINGS

+0

그것은 작동합니다! 그것은 아주 쉬웠다! 감사합니다 – Matroska

4

을 필요로이 권한라고 생각합니다.

final Handler mHandler = new Handler(); 
mHandler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
    audioManager.setMode(AudioManager.MODE_IN_CALL); 
    audioManager.setSpeakerphoneOn(true); 
    MainActivity.shouldTurnSpeakerOn = false; 
    MainActivity.shouldTurnSpeakerOff = true; 
    Log.d("incoming_call","speaker_on");      
    } 
}, 500); 
: 그래서 당신이해야 할 일은 상태가 "offHook"이고 심지어 같은 스피커를 켜 지연 0.5 초를 넣을 때 만들어지는 호출을 수신 리시버에서의 스피커폰을 추가하는 것입니다

전화 상태 수신기에이 것을 추가해야합니다. 그리고 상태가 유휴 상태 일 때 스피커폰을 끄려면 (이전 버전에는 필요).

행운을 비네.

+0

이유는 모르지만이 지연은 500ms가 필요합니다. 감사! – Ishaan