如何管理Android设备亮度

时间:2012-02-27 14:27:18

标签: android

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

3 个答案:

答案 0 :(得分:1)

要更改亮度的设备设置,您需要执行以下操作:

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

其中brightness必须是0到255之间的整数。但是,请记住,将屏幕亮度设置为0将关闭屏幕并将其重新打开并不容易。因此,请始终检查亮度是否> 0(我个人将最小亮度设置为10)。

如果您还有其他问题,请与我们联系。

答案 1 :(得分:0)

几秒钟的谷歌搜索让我知道了这一点:Update Display Brightness on Android after changing it programmatically。它看起来像你想要的。

答案 2 :(得分: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);


                        }

它适合我