Пытаюсь сделать мини приложение для регулировки яркости подсветки экрана.
Добавил в манифест строку как было в примере:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
Однако, при выполнении следующей строки, приложение падает и, как я понял из лога, вышеуказанная строка не работает
Settings.System.putInt(context.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS,i);
Ошибка:
java.lang.SecurityException: com.example.songodv.light was not granted this permission: android.permission.WRITE_SETTINGS.
В Api Level 23 были введены три категории permissions:
SYSTEM_ALERT_WINDOW и WRITE_SETTINGS).Для первой группы достаточно записи в манифесте, для второй -- необходимо запросить разрешение в рантайме, для третьей -- помимо записи в манифесте нужно еще и запросить разрешение в рантайме при помощи открытия экрана конфигурации.
Для того, чтобы использовать WRITE_SETTINGS на Api Level 23+, нужно:
Объявить в манифесте:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
Вызвать Settings.System.canWrite(). Если метод возвратит false, то необходимо перенаправить юзера на экран настроек, дабы он дал соответствующее разрешение:
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
startActivity(intent);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости