[Android/안드로이드] 무음/방해금지 모드 설정과 해제를 위한 방해금지 설정 변경 권한 얻기
2017. 4. 15. 08:49
안드로이드에서 무음/진동/벨소리 모드를 받아오거나 설정하는 방법은 아래와 같다.
AudioManager audioManager = (AudioManager) context.getSystemService(AUDIO_SERVICE);
if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL) {
// 벨소리 모드일 경우
}
else if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE) {
// 진동 모드일 경우
}
else if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT) {
// 무음 모드일 경우
}
AudioManager audioManager = (AudioManager) context.getSystemService(AUDIO_SERVICE);
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); // 벨소리 모드로 변경
audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); // 진동 모드로 변경
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); // 무음 모드로 변경
위의 코드는 벨소리, 진동 모드에서는 잘 동작하나 무음모드 설정/해제시에 에러가 발생
아래와 같이 방해금지 설정 변경 권한을 주어 해결 가능하다.
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (!notificationManager.isNotificationPolicyAccessGranted()) {
context.startActivity(new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS));
}
'개발 > Android' 카테고리의 다른 글
[Android/안드로이드] jarsigner로 서명 시 발생하는 timestamp 관련 경고 해결 방법 (0) | 2017.04.28 |
---|---|
[Android/안드로이드] 손쉽게 스와이프가 가능한 액션바 탭 만들기 (ViewPager, Fragment) 이용 (0) | 2017.04.25 |
[Android/안드로이드] apk파일 assets, res 변경 후 리패키징하기 (0) | 2017.04.15 |
[Android/안드로이드] progressDialog에서 풀스크린 설정 (상태바, 소프트키 없애기) (0) | 2017.03.14 |
[Android/안드로이드] Android studio에서 AVD실행 시 HAXM 오류 해결 방법 (1) | 2017.03.14 |