在 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();
因此,"aquire"方法将打开屏幕(如果尚未打开),而"释放"将直接将其切换回去。
在android 4.2中,当您释放唤醒锁时似乎不会关闭,而仅在达到显示器的屏幕超时设置时(默认值似乎为2分钟)
有没有办法在释放唤醒锁时将其关闭。我已经在 API 中看到了一些关于专门打开和关闭屏幕的内容,但我有点不确定是否使用,因为我不希望应用程序在有人正在做某事时关闭屏幕,所以唤醒锁似乎工作得很好。有什么建议吗?
我发现将屏幕超时设置为短时间但存储默认值并在完成后恢复它的唯一方法。这会在最短时间内将其缩短到大约 5-7 秒,之后您必须小心正确恢复设置,因为这确实是一个彻头彻尾的黑客攻击。