到目前为止,我在搜索中看到了两种方法,这两种方法都遇到了麻烦。
方法1)
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 100);
方法2)
IHardwareService hardware = IHardwareService.Stub.asInterface(ServiceManager.getService("hardware"));
hardware.setScreenBacklight(.5);
这些方法中哪一个是正确的?或者我还应该使用另一种吗?
由于
答案 0 :(得分:5)
我使用下面的代码执行相同的操作
WindowManager.LayoutParams WMLP = getWindow().getAttributes();
WMLP.screenBrightness = 0.15F;
getWindow().setAttributes(WMLP);
使用上述代码的优点是,仅在调用它的活动中影响屏幕亮度。因此,当我转移到某个其他活动(或)退出应用程序时,手机的默认亮度(由用户设置)将恢复。
编辑: 我忘了提到screenBrightness属性的范围是0.0 - 1.0
答案 1 :(得分:-1)
android.provider.Settings.System.putInt(getContentResolver(), Settings.System.DIM_SCREEN,time);时间以毫秒为单位。但是这个Settings.System.DIM_SCREEN被删除了。