Android 无法获得 SCREEN_ON和SCREEN_OFF广播问题解决方法

  • A+
所属分类:Android开发

今天我在AndroidManifest.xml中配置SCREEN_ONSCREEN_OFF来监听屏幕点亮与熄灭,但是发现没有任何反应,后面在stackoverflow上找到了一篇文章(忘记记录地址了),后面解决的方法是必须代码中注册广播。

这两个事件有点特殊,Recevier的注册必须写在代码里面,不能也在在Manifest.xml文件里面。也就是是必须用非常驻型注册,但是这样就会遇到一个问题不能常驻,这里我们可以使用Service,将注册那段代码放在一个Service里面去进行,这样只要Service不停止,这个Recevier就会一直工作。

注册代码如下:

  1. ScreenOnBroadcastReciver sOnBroadcastReciver=new ScreenOnBroadcastReciver();
  2. IntentFilter recevierFilter=new IntentFilter();
  3. recevierFilter.addAction(Intent.ACTION_SCREEN_ON);
  4. recevierFilter.addAction(Intent.ACTION_SCREEN_OFF);
  5. registerReceiver(sOnBroadcastReciver, recevierFilter);

根据多年的经验,上面的应该只是一部分广播,我目前只知道这两个广播,如有其它欢迎留言交流。

avatar