2010-10-18 4 views
1

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

ответ

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, не уверен в более ранних версиях.

+0

извините за n00b вопрос - но вы можете сказать мне, что параметр «режим» является ? Я пытался заставить этот код работать, назначив режим var равным 0 или 1, но не влияя ... нет компиляции или ошибок времени выполнения - просто ничего не делает ... –

1

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

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" />