我司开发了一个APP, 叫“美乐时光”,简单地说他是一个听歌软件; html
它有一个功能叫“定时启动”,即早上(或你设定的时间)能够定时启动,而后放歌把你叫醒。 spa
这个功能中最麻烦的就是“点亮屏幕”和“解开屏幕锁”。 orm
用GOOGLE一搜“”,文章一大堆,什么PowerManager, KeyguardManager,代码大同小异,可是我认真地试了,基本只能解开没有锁屏设置的手机(即按电源键就能够解锁的手机,连滑动解锁都没有的那种)。这有个屁用啊? htm
后来只得去研究Android闹钟的源码?认认真真地读啊读,那个代码写得真是乱啊乱,我就一点一点地砍砍砍。。。 ci
一个上午过去了。。。 开发
最后终于找到了闹钟的秘密。 get
对于我这个APP的状况,我只须要它定时放歌就行,不关心屏幕要不要解锁。因此PowerManger && KeyguardManager什么的,统统不须要。下面几行代码便可搞定: 源码
1 | <b>// 要解锁屏幕? |
2 | { |
3 | final Window win = getWindow(); |
4 | win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
5 | | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
6 | | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
7 | | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
8 | | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON); |
9 | }</b> |