如何在Android代码中dynamic获取当前屏幕的亮度?

如何在Android代码中dynamic获取当前屏幕的亮度?

您好,以获得Android系统的当前亮度级别,您可以使用此代码:

try { float curBrightnessValue=android.provider.Settings.System.getInt( getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS); } catch (SettingNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

你可以阅读这个系统文件的内容

/ SYS /类/发光二极pipe/ LCD背光/亮度

该值是当前屏幕亮度范围0-255

刚才提到这个问题,只是为了扩大小说的答案:

如果以前没有在代码中覆盖settings.screenBrightness,它将返回-1。 这是正确的行为,因为将screenBrightness设置为-1会将亮度设置为当前系统亮度级别。

这个系统的亮度可以在任何时候由用户改变,所以如果你只是想把亮度恢复到原来的值,可能没有太大的用处,因为实际值可能是过时的”。

根据这个 – http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness

你可以通过改变亮度

 WindowManager.LayoutParams settings = getWindow().getAttributes(); settings.screenBrightness = newValue; getWindow().setAttributes(settings); 

另请参阅Hamiora答案进一步解释。