일용직 코딩노동자

Android(안드로이드) 벨소리,진동,무음 제어하기 본문

Android

Android(안드로이드) 벨소리,진동,무음 제어하기

사용자 일용직 코딩노동자 2020. 1. 14. 16:23

현재 스마트폰의 상태를 벨소리,진동,무음으로 변경이 가능하게 하고싶으실때 유용합니다.

 

우선 퍼미션먼저 넣어줄게요.

 

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.VIBLATE"/>

저는 이렇게 3개 넣어줬습니다.

 

무음상태까지 제어를 하기위해선 별도의 작업이 하나 더 필요합니다.

 

NotificationManager notificationManager;
notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);

	if (!notificationManager.isNotificationPolicyAccessGranted()) {
	Toast.makeText(getApplicationContext(), "권한을 허용해주세요", Toast.LENGTH_LONG).show();
	mContext.startActivity(new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS));
}

 

해당 앱의 권한을 설정 할 수 있는 화면으로 바로 이동이 됩니다.

 

이렇게까지 했다면 이제 본격적으로 벨소리,진동,무음을 제어해볼게요.

 

AudioManager audioManager;

audioManager = (AudioManager)getSystemService(Context.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.setRingerMode(AudioManager.RINGER_MODE_NORMAL); //벨소리모드로 변경
audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); //진동모드로 변경
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); //무음모드로 변경

 

이런식으로 진행이 가능합니다.

 

테스트해보세요!

 

궁금하신 사항은 댓글 남겨주세요. 

0 Comments
댓글쓰기 폼