Не работает код с SCREEN_BRIGHTNESS

171
02 ноября 2017, 04:59

Пытаюсь сделать мини приложение для регулировки яркости подсветки экрана.

Добавил в манифест строку как было в примере:

<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.

Answer 1

В Api Level 23 были введены три категории permissions:

  1. Normal;
  2. Dangerous;
  3. Special (их два: SYSTEM_ALERT_WINDOW и WRITE_SETTINGS).

Для первой группы достаточно записи в манифесте, для второй -- необходимо запросить разрешение в рантайме, для третьей -- помимо записи в манифесте нужно еще и запросить разрешение в рантайме при помощи открытия экрана конфигурации.

Для того, чтобы использовать WRITE_SETTINGS на Api Level 23+, нужно:

  1. Объявить в манифесте:

    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
    
  2. Вызвать Settings.System.canWrite(). Если метод возвратит false, то необходимо перенаправить юзера на экран настроек, дабы он дал соответствующее разрешение:

    Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
    startActivity(intent);
    
READ ALSO
Как получить размер EditText?

Как получить размер EditText?

Необходимо получить размер текста в EditText в dp, чтобы потом его изменить тоже в dpКак это можно реализовать?

217
Вывод нечетных чисел в Java

Вывод нечетных чисел в Java

Есть метод, который выводит нечетные числа от 1 до 100

641
Android Studio Вывод в меню

Android Studio Вывод в меню

Привет, есть у меня такой код:

280
Process finished with exit code -1

Process finished with exit code -1

После выполнения программы в IntelliJ IDEA в консоли появляется "Process finished with exit code -1"Вроде бы должно возвращать: "Process finished with exit code 0"

591