2012-02-27 125 views
1

我需要通过我的应用更改Android屏幕亮度。 我见过的所有现有答案都与窗口屏幕亮度有关,但我需要设备亮度。如何管理Android设备亮度

+0

我觉得OP要真正使屏幕更亮/暗,不仅改变亮度的报告值。 – 2012-02-27 14:33:55

回答

1

要改变亮度的设备设置你需要这样做:

android.provider.Settings.System.putInt(getContentResolver(), 
    android.provider.Settings.System.SCREEN_BRIGHTNESS, brightness); 

brightness必须然而0和255之间的整数记住的是,屏幕亮度设置为0将关闭屏幕关闭并重新打开它并不容易。所以总是检查亮度> 0(我个人设置最低亮度为10)。

让我知道你是否还有其他问题。

+0

为什么这段代码导致我的应用程序预期停止?在Android 4.1模拟器上。 – JackWM 2013-02-24 02:47:12

0

根据我的经验

1st method. 
    WindowManager.LayoutParams lp = getWindow().getAttributes(); 
        lp.screenBrightness = 75/100.0f; 
        getWindow().setAttributes(lp); 

在亮度值非常根据1.0f.100f是最大亮度。

上面提到的代码会增加当前窗口的亮度。 如果我们想提高整个Android设备的亮度这段代码是不够的, 为此,我们需要使用

2nd method. 
android.provider.Settings.System.putInt(getContentResolver(), 
          android.provider.Settings.System.SCREEN_BRIGHTNESS, 192); 

其中192是亮度值很为1〜255 的主要问题使用第二种方法是它会在Android设备中以增加的形式显示亮度,但实际上它不会增加Android设备的亮度。这是因为它需要一些清爽。

这就是为什么我通过同时使用两个代码找出解决方案的原因。

   if(arg2==1) 
        { 

      WindowManager.LayoutParams lp = getWindow().getAttributes(); 
        lp.screenBrightness = 75/100.0f; 
        getWindow().setAttributes(lp); 
        android.provider.Settings.System.putInt(getContentResolver(), 
          android.provider.Settings.System.SCREEN_BRIGHTNESS, 192); 


         } 

一切正常,我