锁屏与亮屏广播的注意点
锁屏广播事件是一个特殊的广播事件,在清单文件中注册是不会生效的,只能在代码中进行注册
这里我通过开启服务,在服务中再注册广播:
/** * 锁屏服务 */ public class ScreenService extends Service { private ScreenOffReceiver recerver; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); //注册锁屏的广播,锁屏广播事件是一个特殊的广播事件,在清单文件中注册是不会生效的 recerver = new ScreenOffReceiver(); //锁屏的意图过滤,ACTION_SCREEN_ON就为亮屏了 IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF); registerReceiver(recerver, intentFilter); } @Override public void onDestroy() { super.onDestroy(); unregisterReceiver(recerver);//取消注册 } /** * 锁屏广播的接收 */ private class ScreenOffReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { System.out.println("锁屏了"); } } }
最后注册服务,执行 startService(new Intent(this,ScreenService.class));就能开启了,