AudioManager.setStreamVolume() 메서드 사용시 위와 같은 에러가 발생했다.
단말이 방해금지모드일 때 앱에서 볼륨을 조절하려 하면 발생하는 에러인데 방해금지모드를 무시 할 수 있는 권한을 주어 해결할 수 있다.
Settings.Global.getInt(getContentResolver(), “zen_mode”);
Settings.Global.getInt(getContentResolver(), “zen_mode”);
를 통해 현재 상태를 확인 할 수 있으며 응답값은 다음과 같다.
0 | 방해금지모드 OFF |
1 | 중요한 알림만 허용 |
2 | 모든 알람에 대해 무음 처리 |
3 | 경보만 허용 |
볼륨값을 설정하기 전 권한을 체크해 권한이 없다면 아래 코드처럼 사용자로부터 권한을 부여받아야 한다.
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && !notificationManager.isNotificationPolicyAccessGranted()) {
startActivity(new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS));
}else{
... [권한 있을 시 처리 로직] ...
}
추가로 AndroidManifast.xml에
Android.permission.ACCESS_NOTIFICATION_POLICY
<uses-permission android:name="Android.permission.ACCESS_NOTIFICATION_POLICY" />
퍼미션을 추가해 준다.
'개발 > Android' 카테고리의 다른 글
webview - window.open() 처리 (0) | 2021.06.02 |
---|