2011년 2월 15일 화요일

[안드로이드] 벨소리와 알림음 음량을 따로 설정하기

안드로이드에서는 총 7가지 음량을 설정할 수 있다.
(일반적으로 쓰이는 미디어, 벨, 알림(경고), 통화, 알람, 시스템 그리고 DTMF)

그리고 안드로이드에서 지원하는 음량 관련 설정 중의 하나가 '벨소리 볼륨을 알림음 볼륨으로 사용' 이다. 이 항목이 적용되어 있으면 벨이나 알림 둘중 하나만 볼륨을 조절해도 둘다 같은 값으로 바뀌어 버린다. 이것을 핸드폰에서 해제하는 법은 간단하다. 홈 화면에서 메뉴버튼을 눌러 설정 -> 소리설정 -> 볼륨(혹은 벨소리 볼륨, 제조사마다 다르다) -> '알림을 위해 수신전화 볼륨 사용' 을 체크 해제하면 된다.


 그런데 문제는, 이것을 프로그램에서 설정하려면(Settings.System) 해당하는 항목이 아무리 찾아봐도 없다는 것이다;

 결론부터 말하면 위 설정에 해당하는 항목은 NOTIFICATIONS_USE_RING_VOLUME 이고 분명 존재하는 항목이지만 사용할 수 없도록 숨겨져 있다. 이유는 조만간 deprecate될 항목이라는 것 같다. 하지만 이미 기존에 나온 기기들에는 이 옵션이 다 적용되어 있으니 OS 업데이트가 되지 않는 기기들을 생각하면 그냥 무시해 버릴 수도 없는 노릇이다.

 만약 이 옵션을 설정하고 싶다면 NOTIFICATIONS_USE_RING_VOLUME 에 대응하는 String인 notifications_use_ring_volume을 Setting.System.put(또는 get)Int(ContentResolver cr, String name, int def); 에서 두번째 인자로 넘겨주면 된다. 여기서 int 값이 0이면 사용안함, 1이면 사용이다.

예)
Settings.System.putInt(getContentResolver(), notifications_use_ring_volume, 0);

댓글 없음:

댓글 쓰기