안드로이드에서 무음/진동/벨소리 모드를 받아오거나 설정하는 방법은 아래와 같다.

 

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));
}

 

 

 


+ Recent posts