2

在 4.2 之前的 android 版本中,我曾经有一些代码在通知进入应用程序时闪烁屏幕(如果用户希望它闪烁)。我用了:

PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(
                     PowerManager.SCREEN_DIM_WAKE_LOCK | 
                     PowerManager.ACQUIRE_CAUSES_WAKEUP, "example_tag"
                                         );
wl.acquire();

//this would switch the screen on
//then after a little while I'd call
wl.release(); 

因此,“获取”方法将打开屏幕(如果尚未打开),“释放”方法将直接将其关闭。

在 android 4.2 中,当您释放唤醒锁时似乎不会发生关闭,但只有在达到显示器的屏幕超时设置时才会发生关闭(默认似乎是 2 分钟)

释放唤醒锁时,有什么方法可以关闭它。我在 API 中看到了一些关于专门打开和关闭屏幕的内容,但我有点不确定是否使用,因为如果有人正在做某事,我不希望应用程序关闭屏幕,所以唤醒锁似乎运作良好。有什么建议么?

4

1 回答 1

1

我发现它的唯一方法是将屏幕超时设置为很短的时间,但存储默认值并在完成后恢复它。这将在最短的时间内将其降低到大约 5-7 秒,并且您必须小心之后正确恢复设置,因为这确实是一个彻底的黑客攻击。

于 2013-08-12T06:20:11.503 回答