我正在制作一个需要在用户摇动手机时打开/关闭屏幕的应用程序。到目前为止,我已经有了一个 SensorEventListener 来监听这个问题的答案中建议的震动。
当我检测到抖动时,我会按照此问题的答案中的建议更改屏幕亮度的值。如果我实际上不关闭屏幕,这一切都很好......如果我通过该public void setBright(float value)
方法将亮度设置为 0.01f,它就可以完美运行。但是,如果我将亮度设置为 0.0f,手机将不会再次转动屏幕……至少在我按下电源按钮之前不会。
我正在尝试做的事情可能吗?我究竟做错了什么?
- 编辑 -
感谢Dre和icyerasor,我进一步研究了这个问题。我在将亮度设置为 0.0f 之前获得了PARTIAL_WAKE_LOCK,但是当我摇晃手机时它仍然无法打开。但是,当我调试应用程序时,我发现当我在屏幕关闭的情况下摇动手机时 setBright(1.0f) 会被调用;我怀疑锁屏在某种程度上弄乱了它,因为当我按下电源按钮时它就会启动。在我按下电源按钮后,该应用程序继续像往常一样工作。有没有办法绕过锁屏?
谢谢你的帮助!