내 앱은 벨소리 모드를 자동으로 설정하지만 Android N을 사용하면 java.lang.SecurityException: Not allowed to change Do Not Disturb state
이됩니다.Android N : 확인란 환경 설정을 업데이트하기 전에 DND 상태가 변경되었는지 확인
나는이 post의 단계를 수행했으며 다음 코드는 호출기 모드를 변경할 수있는 권한을 설정하는 토글 단추가 포함 된 활동을 엽니 다. 이 활동은 허가를받지 않고 "후원"할 수 있습니다.
Intent intent = new Intent(
android.provider.Settings
.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
자동 벨소리 모드 기능을 사용하기 전에 권한이 부여되는지 확인하고 싶습니다.
이 벨소리 모드 전환을 사용하거나 사용하지 않으려면 CheckBoxPreference를 추가하고 있습니다. 따라서 확인란을 선택하면 벨소리 모드를 자동으로 설정할 수 있으며 그렇지 않은 경우 벨소리 모드를 변경하지 않습니다.
disableSoundCheckboxPreference.setOnPreferenceChangeListener(
new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
...
// check for Android N and start the activity mentioned above
그러나 권한이 부여 된 경우에만이 체크 박스를 가능하게하는 올바른 방법은 무엇입니까 :
은 지금까지 나는 사용자가 체크 박스를 클릭하면이 권한 요청을 시작하는 관리? 나는 그것이 ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED
과 청취자와 관련이 있어야한다고 생각하지만 이것을 구현하기 위해 몇 가지 아이디어가 필요합니다.
감사합니다.