Пытаюсь сделать мини приложение для регулировки яркости подсветки экрана.
Добавил в манифест строку как было в примере:
<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);
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Необходимо получить размер текста в EditText в dp, чтобы потом его изменить тоже в dpКак это можно реализовать?
После выполнения программы в IntelliJ IDEA в консоли появляется "Process finished with exit code -1"Вроде бы должно возвращать: "Process finished with exit code 0"