티스토리 뷰
하고있는 프로젝트가 반드시 스피커로 소리가 나야하는 어플리케이션입니다. 하지만 스마트폰 사용자가 이어폰을 사용하고 있는 상태라면 혹은 이어폰을 연결해두고는 깜빡했을경우 소리는 스피커가아닌 이어폰에서 나게됩니다. 따라서 이러한 상황을 코드상으로 없애주어야 합니다. 짧은 코드지만 선언과 본문을 나눠서 보겠습니다.
1 | private AudioManager audioManager; | cs |
우선 AudioManager를 선언해 줍니다.
1 2 3 | audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION); audioManager.setSpeakerphoneOn(true); | cs |
선언한 AudioManager에 Audio_Service를 연결하여줍니다. 그리고 Mode와 Option을 선택해줍니다. 이때 MODE_IN_COMMUNICATION을 사용함으로서 Audio를 통화용 출력으로 바꿔줍니다.(즉 통화용으로 바꿈으로서 스피커로 전환되게 합니다.) 이 작업을 해준뒤 원래대로 복구시키지 않으면 사용자 핸드폰은 OS를 reboot 하지 않으면 이어폰의 사용이 되지 않을 것입니다. 그래서 저는 OnPause()에 다음과 같이 추가하여 줬습니다.
1 2 3 4 5 6 | protected void onPause() { super.onPause(); // Speaker mode에서 다시 전환하기 위해서. audioManager.setMode(AudioManager.MODE_NORMAL); audioManager.setSpeakerphoneOn(false); } | cs |
원래 상태로 돌려주면 정상적이게 다시 사용할 수 있게됩니다. 핸드폰에 기본으로있는 알람 앱들이 이러한 내용을 통해서 이어폰을 끼운 상태에서도 알람이 울리는 것인지는 정확하게 잘은 모르겠으나 비슷한 원리를 이용하고 있을것이라 생각이되네요.
'안드로이드' 카테고리의 다른 글
[안드로이드] 최근 사용한 앱(실행된 앱) 목록 제외하기 (1) | 2017.11.13 |
---|---|
[안드로이드] LG 기종 백그라운드, 미해결 (0) | 2017.09.18 |
[안드로이드 스튜디오] Bitbucket Git 연동하기 (6) | 2017.08.29 |
[안드로이드] 전원 버튼 이벤트 (0) | 2017.08.21 |
[안드로이드]Viewpager Scroll 이벤트 (0) | 2017.07.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday