3

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

我在用

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

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

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

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

4

4 回答 4

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 唤醒锁打开手机:

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();
于 2011-07-28T01:55:07.060 回答
1

让这个工作的最好方法是对我们 PowerManager.goToSleep(time);

这样,您可以控制(如果您愿意)您希望设备休眠多长时间,您还可以使用 PowerManager.isScreenOn() 来确定它是否已再次打开。

如果您还没有设置 WakeLock,您将不得不设置......很简单,只要做

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

然后你可以使用 powerManager.goToSleep

编辑

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

于 2011-07-30T17:42:59.067 回答
1

如果您尝试关闭显示,您尝试过
PowerManager.goToSleep()吗?在http://developer.android.com/reference/android/os/PowerManager.html#goToSleep(long )
查看更多信息

于 2011-07-29T14:06:52.617 回答
0

屏幕亮度范围从 0 到 1,而您使用的 -1 是“首选”亮度。首先尝试使用 1 并查看它是否有效,因为 -1 可能只是保留了之前设置的值。

于 2011-07-24T03:23:44.327 回答