释放带有ACQUIRE_CAUSES_WAKEUP标志的唤醒锁后屏幕关闭

时间:2016-05-18 23:18:13

标签: android cordova wakelock android-wake-lock

背景信息:我在Android 4.0.4下。 我说的代码在Activity中。 该应用程序是Cordova应用程序,我在插件中编写此代码。 我想我在StackOverflow和Android文档中阅读了所有问题。

我想获得一个唤醒锁,唤醒设备,做一些事情然后,当释放唤醒锁时,我希望屏幕再次关闭并让手机睡觉。 我尝试了几种方法:

我尝试了几个在这里找到唤醒设备的例子。 我设法以编程方式打开设备的唯一方法是使用ACQUIRE_CAUSES_WAKEUP标志获取唤醒锁。这很好用。当我发布唤醒锁时,问题就来了。我无法再次关闭屏幕。它永远保持不变。我尝试了所有可用的WAKELOCKS以及所有可用的FLAGS。 注意:我对这种方法并不完全满意,因为正如文档中所述,唯一不被弃用的唤醒锁是部分唤醒锁,不幸的是,它不能与此标志一起使用。

由于我无法使用唤醒锁功能让屏幕关闭,我尝试以编程方式将其关闭。 我想我尝试了这里找到的所有例子来关闭屏幕,唯一有效的是:

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

问题是使用这种方法我不能再打开它。当我再次获得唤醒锁时,它就会停止。 此外,当我试图唤醒手机时按下" home"按钮它不会醒来。它仅在按下3或4次电源后才响应"按钮。似乎这种方法冻结了手机。

我尝试在获取(以及之前)唤醒锁之前以编程方式打开屏幕,使用与上面相同的代码恢复默认亮度值,但它不起作用。

差不多一个星期我才挣扎于此。任何建议都将不胜感激。

0 个答案:

没有答案