Android开发人员选项->保持清醒== FLAG_KEEP_SCREEN_ON或WAKE_LOCK?

时间:2019-02-04 16:47:52

标签: java android

我正在Android Nexus 10平板电脑上构建应用程序,它将充当信息亭,因此我希望屏幕可以100%处于打开状态。我目前一直在使用“开发人员选项”>“保持唤醒状态”(充电时屏幕将一直休眠)。

根据本文档:glFinish

启用此设置后,它等同于WAKE_LOCK还是仅仅是FLAG_KEEP_SCREEN_ON?

谢谢!

1 个答案:

答案 0 :(得分:0)

不,它比这更底层。 “保持唤醒”切换将一个值放入Settings.Global中,然后由PowerManagerService读取。该值是可以为手机充电的不同插头类型的组合(默认情况下,交换机使用AC,USB和无线)。

如果存储的值不是0,并且设备已插入该值指定的插头类型之一,则PowerManagerService永远不会将设备设置为ASLEEP状态。

它类似于唤醒锁,但是它有自己的特殊过程。

StayAwakePreferenceController PowerManagerService


顺便说一句,FLAG_KEEP_SCREEN_ON实际上在幕后使用了唤醒锁。您只需要拥有WAKELOCK权限即可使用它。

您可以看到herehere


对于信息亭类型的商品,您可能应该使用FLAG_KEEP_SCREEN_ON。此唤醒锁可防止屏幕变暗,而“保持唤醒”切换不会。