100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > android 手机监听屏幕锁屏 用户解锁

android 手机监听屏幕锁屏 用户解锁

时间:2020-10-01 12:02:24

相关推荐

android 手机监听屏幕锁屏 用户解锁

用到的场景很多,自己发挥 ,废话不多说直接上代码:

private classScreenBroadcastReceiverextendsBroadcastReceiver{privateStringaction= null;@Overridepublic voidonReceive(Context context,Intent intent) {action=intent.getAction();if(Intent.ACTION_SCREEN_ON.equals(action)) {// 开屏mScreenStateListener.onScreenOn();}else if(Intent.ACTION_SCREEN_OFF.equals(action)) {// 锁屏mScreenStateListener.onScreenOff();}else if(Intent.ACTION_USER_PRESENT.equals(action)) {// 解锁mScreenStateListener.onUserPresent();}}}/*** 开始监听screen状态** @paramlistener*/public voidbegin(ScreenStateListener listener) {mScreenStateListener=listener;registerListener();getScreenState();}/*** 获取screen状态*/private voidgetScreenState() {PowerManagermanager=(PowerManager)mContext.getSystemService(Context.POWER_SERVICE);if(manager.isScreenOn()) {if(mScreenStateListener!= null) {mScreenStateListener.onScreenOn();}}else{if(mScreenStateListener!= null) {mScreenStateListener.onScreenOff();}}}/*** 停止screen状态监听*/public voidunregisterListener() {mContext.unregisterReceiver(mScreenReceiver);}/*** 启动screen状态广播接收器*/private voidregisterListener() {IntentFilterfilter= newIntentFilter();filter.addAction(Intent.ACTION_SCREEN_ON);filter.addAction(Intent.ACTION_SCREEN_OFF);filter.addAction(Intent.ACTION_USER_PRESENT);mContext.registerReceiver(mScreenReceiver,filter);}public interfaceScreenStateListener{// 返回给调用者屏幕状态信息public voidonScreenOn();public voidonScreenOff();public voidonUserPresent();}}复制代码

在上面的代码中,用到了动态注册广播,在需要监听屏幕状态的activity中直接调用,当不需要监听的时候,如activity finish的时候,使用unregisterListener解除广播监听;

下面是在Activity中调用;

ScreenListener screenListener = new ScreenListener(this) ; screenListener.begin(new ScreenListener.ScreenStateListener() {@Overridepublic void onScreenOn() {Toast.makeText( CounterTActivity.this , "屏幕打开了" , Toast.LENGTH_SHORT ).show();}@Overridepublic void onScreenOff() {Toast.makeText( CounterTActivity.this , "屏幕关闭了" , Toast.LENGTH_SHORT ).show();}@Overridepublic void onUserPresent() {Toast.makeText( CounterTActivity.this , "解锁了" , Toast.LENGTH_SHORT ).show();}});复制代码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。