Android中的Wakelocks 4.2用于打开和关闭屏幕

时间:2012-12-06 23:57:59

标签: android android-screen android-wake-lock

在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中看到了一些关于专门打开和关闭屏幕的内容,但我对使用不太感兴趣,因为如果有人在中间,我不希望应用程序关闭屏幕做某事,所以唤醒锁似乎运作良好。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我发现将屏幕超时设置为短时间的唯一方法是保存默认设置并在完成后恢复。这将在最短的时间内将其降低到5-7秒左右,之后你必须小心地将设置恢复正​​确,因为它确实是完全黑客攻击。