2013-03-18 48 views
0

在Android中设置autoBrightness非常简单,不是吗?立即生效的A​​ndroid 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 2013-03-18 12:07:49

+0

不太确定这是否会有所作为。 – TronicZomB 2013-03-18 12:17:46

+0

isAuto?0:1是一个三元(布尔)表达式,它将完全相同或不带圆括号,但它更清晰。我只是写得很快,因为这是一个问题 - 我想分享的答案,因为它让我疯狂了几周:-) – Twinone 2013-03-18 12:18:55

回答

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); 
}