Skip to content

AudioManager.MODE_IN_COMMUNICATION can't be reset?

Daniel Park edited this page Dec 20, 2019 · 1 revision
android.permission.MODIFY_AUDIO_SETTINGS 권한이 있는 App A 와 App B 가 있을 때,
App B application 에서 android audioManager.setMode(MODE_IN_COMMUNICATION) 으로 설정 했을 경우
App A application 에서 android audioManager.setMode(MODE_NORMAL) 로 설정해도 적용이 되지 않는 상황.

즉 voip 앱에서 MODE_IN_COMMUNCATION 을 설정했다면, voIP 앱에서 MODE_NORMAL 로 변경하기 전까지는 다른 application 에서 setMode 변경이 안됨.
(OS 6.0.3) 뿐 아니라 , Lenova (OS 8.0.0) 등 6.0 이상 Android OS 기기에서도 동일하게 테스트를 함.

확인결과

MODE_IN_COMMUNICATION, MODE_RINGTONE 관련해서 안드로이드 기본 구조가 mode set을 실행한 application에서 해제할수 있는 구조.

관련 Android Framework source : https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/audio/AudioService.java

setModeInt() 체크

Clone this wiki locally