2013-03-18 4 views
0

Это довольно легко установить autoBrightness в Android, не так ли?Android Autobrightness, который работает сразу

Settings.System.putInt(resolver, 
     Settings.System.SCREEN_BRIGHTNESS_MODE, 0); // 0 is manual, 1 is auto 

Но если вы переключая:

boolean isAuto = Settings.System.getInt(resolver, 
     Settings.System.SCREEN_BRIGHTNESS_MODE) == 1; 
Settings.System.putInt(resolver, 
     Settings.System.SCREEN_BRIGHTNESS_MODE, isAuto ? 0 : 1); 

Он не будет автоматически адаптироваться, пока не заблокировать экран и заблокировать его снова.

+0

насчет сдачи 'isAuto? 0: 1' в своем() возможно ...? – TronicZomB

+0

Не слишком уверен, что это изменит ситуацию или нет. – TronicZomB

+0

isAuto? 0: 1 является тройным (булевым) выражением, он будет точно таким же с круглыми скобками или без них, но он чище с. Я просто писал быстро, так как это вопрос-ответ, который я хотел разделить, потому что это сводило меня с ума на несколько недель :-) – Twinone

ответ

0

Я не знаю, почему, но установить его снова на 0 перед установкой его на 1 работ:

boolean isAuto = Settings.System.getInt(resolver, 
    Settings.System.SCREEN_BRIGHTNESS_MODE) == 1; 
if (isAuto) { 
    Settings.System.putInt(resolver, 
     Settings.System.SCREEN_BRIGHTNESS_MODE, 0); // set to 0 again, even if it is already 0 
    Settings.System.putInt(resolver, 
     Settings.System.SCREEN_BRIGHTNESS_MODE, 1); // now it auto-adapts 
} else { 
    Settings.System.putInt(resolver, 
     Settings.System.SCREEN_BRIGHTNESS_MODE, 0); 
}