恢复screenBrightness Android时出现空白屏幕

时间:2011-07-21 21:40:14

标签: android layoutparams

**请注意,我只是想关掉显示屏。如果您有更好的方法,请建议:)

我正在使用

params.screenBrightness = 0;
getWindow().setAttributes(params);

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = -1;
getWindow().setAttributes(params);

打开/关闭显示屏。当我重新打开屏幕时,我得到的是一个背光打开的空白屏幕。

知道为什么会这样吗? 谢谢 麦克

4 个答案:

答案 0 :(得分:2)

虽然是一个小小的改变,但试着在最后放一个“F”:

params.screenBrightness = 0F;
getWindow().setAttributes(params);

如果这不能解决问题,可能会将屏幕恢复为默认设置,从而刷新屏幕。我做了一些研究,发现这个代码可能会刷新屏幕:

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

此外,您可以尝试使用powermanager wakelock打开手机:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
// Wakes the screen on.
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP, AudioControlExtender.this.getClass().getName());
wl.acquire();

如果这不起作用,请按照您现在的方式打开屏幕,然后执行此操作:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
// Sets the screen on maximum brightness.
// This might fix the problem you are having with the screen brightness since
// the screen settings are changed.
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, AudioControlExtender.this.getClass().getName());
wl.acquire();

答案 1 :(得分:1)

如果您要关闭显示屏,请尝试使用 PowerManager.goToSleep()
查看http://developer.android.com/reference/android/os/PowerManager.html#goToSleep(long

上的更多信息

答案 2 :(得分:1)

让这个工作的最好方法是给我们PowerManager.goToSleep(时间);

通过这种方式,您可以控制(如果您愿意)您希望设备休眠多长时间,您也可以使用PowerManager.isScreenOn()来确定它是否已经重新启动。

如果你已经没有......那么你将不得不设置WakeLock

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "GLGame");  

从中可以使用powerManager.goToSleep

修改

确保释放WakeLock并在onPause和onResume方法上获取它们!

答案 3 :(得分:0)

Screen brightness的范围是0到1,而你使用的-1是“首选”亮度。首先尝试使用1并查看是否有效,因为-1可能只保留之前设置的内容。