**请注意,我只是想关掉显示屏。如果您有更好的方法,请建议:)
我正在使用
params.screenBrightness = 0;
getWindow().setAttributes(params);
和
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = -1;
getWindow().setAttributes(params);
打开/关闭显示屏。当我重新打开屏幕时,我得到的是一个背光打开的空白屏幕。
知道为什么会这样吗? 谢谢 麦克
答案 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可能只保留之前设置的内容。