Как включить/отключить режим автояркости через API

Я хочу управлять системными настройками «автояркость», устанавливая ее ВКЛ или ВЫКЛ. Я могу контролировать уровень яркости, но только если AUTO выключен. Из того, что я читал до сих пор, в Settings.System есть SCREEN_BRIGHTNESS_MODE, но только для уровня API 8 или выше, и также не рекомендуется возиться с ним. Но в настоящее время мой телефон имеет Android 2.1 (API 7) и есть виджеты, которые могут управлять этой настройкой (включать/отключать автояркость и устанавливать уровень). Как это делается?


person Alex    schedule 18.10.2010    source источник


Ответы (2)


Я решил свою проблему, используя:

private static final String SCREEN_BRIGHTNESS_MODE = "screen_brightness_mode";
private static final int SCREEN_BRIGHTNESS_MODE_MANUAL = 0;
private static final int SCREEN_BRIGHTNESS_MODE_AUTOMATIC = 1; 

Settings.System.putInt(resolver, SCREEN_BRIGHTNESS_MODE, mode); 
Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS, lev);

Это работает в версиях API 7 и 8, не уверен в более ранних версиях.

person Alex    schedule 19.10.2010
comment
извините за вопрос n00b, но можете ли вы точно сказать, что такое параметр «режим»? Я пытался заставить этот код работать, назначив для режима var значение 0 или 1, но безрезультатно... никаких ошибок компиляции или времени выполнения - просто ничего не делает... - person Bennett Von Bennett; 18.02.2012

Я думаю, это должно сработать для вас:

Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS_MODE, mode); 
Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS, lev);

И не забудьте добавить разрешение:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
person Deqing    schedule 06.01.2014