ScreenReceiverUtil工具类
/*** Author : 马占柱* E-mail : mazhanzhu_3351@163.com* Time   : 2021/9/22 9:40* Desc   : 锁屏解锁的广播动态注册监听*/
public class ScreenReceiverUtil {private Context mContext;private SreenBroadcastReceiver mScreenReceiver;private SreenStateListener mStateReceiverListener;private final String SYSTEM_DIALOG_REASON_KEY = "reason";private final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";private final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";public ScreenReceiverUtil(Context mContext) {this.mContext = mContext;}public void setScreenReceiverListener(SreenStateListener mStateReceiverListener) {this.mStateReceiverListener = mStateReceiverListener;// 动态启动广播接收器this.mScreenReceiver = new SreenBroadcastReceiver();IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_SCREEN_ON);filter.addAction(Intent.ACTION_SCREEN_OFF);filter.addAction(Intent.ACTION_USER_PRESENT);filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);mContext.registerReceiver(mScreenReceiver, filter);}public void stopScreenReceiverListener() {mContext.unregisterReceiver(mScreenReceiver);}/*** 监听sreen状态对外回调接口*/public interface SreenStateListener {void onSreenOn();void onSreenOff();void onUserPresent();void pressHome();void pressMultitask();}public class SreenBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (mStateReceiverListener == null) {return;}switch (action) {case Intent.ACTION_SCREEN_ON:// 开屏mStateReceiverListener.onSreenOn();break;case Intent.ACTION_SCREEN_OFF:// 锁屏mStateReceiverListener.onSreenOff();break;case Intent.ACTION_USER_PRESENT:// 解锁mStateReceiverListener.onUserPresent();break;case Intent.ACTION_CLOSE_SYSTEM_DIALOGS:String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);if (reason == null) {return;}if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {// Home键mStateReceiverListener.pressHome();}if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {// 最近任务列表键mStateReceiverListener.pressMultitask();}break;default:break;}}}
}

使用,在onCreate()中设置

@Overridepublic void onCreate() {super.onCreate();mScreenListener = new ScreenReceiverUtil(this);//锁屏广播监听器mScreenListener.setScreenReceiverListener(mScreenListenerer);}private ScreenReceiverUtil.SreenStateListener mScreenListenerer = new ScreenReceiverUtil.SreenStateListener() {@Overridepublic void onSreenOn() {Log_Ma.e(TAG, "开屏 -------------------");}@Overridepublic void onSreenOff() {Log_Ma.e(TAG, "锁屏 ");}@Overridepublic void onUserPresent() {Log_Ma.e(TAG, "解锁 ");}@Overridepublic void pressHome() {Log_Ma.e(TAG, "------------------------------------------------按下home键----------");}@Overridepublic void pressMultitask() {Log_Ma.e(TAG, "------------------------------------------------按下多任务键----------");}};

同时要记得,在onDestroy()中销毁注册信息

mScreenListener.stopScreenReceiverListener();

监听系统开屏、锁屏、解锁、按下home键、按下多任务键【未完待续】相关推荐

  1. android 监听屏幕是否锁屏

    今天,简单讲讲如何监听手机屏幕是否锁屏. 实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可 ...

  2. Android 监听home、锁屏、解屏简单实现

    activity 代码: package com.demo;import android.app.ListActivity; import android.content.Context; impor ...

  3. Android平台监听系统截屏方案预研及相关知识点

    最近有个针对系统截屏的需求,所以预研了Android平台上捕获系统截屏的方案. 最直接的方式就是监听手机的系统截屏组合键(电源键+音量下键),但是这种方式实现难度大,且有的机型使用特殊手势进行截屏,兼 ...

  4. Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

    本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.c ...

  5. android ContentObserver监听系统短信和备份短信到本地

    contentProvider中的一个工具,记录一下. 监听短信: package com.example.messagedemo;import android.net.Uri; import and ...

  6. [html] HTML5如何监听video的全屏和退出全屏?

    [html] HTML5如何监听video的全屏和退出全屏? 监听fullscreenchange事件document.addEventListener('fullscreenchange', (ev ...

  7. ubuntu命令 图片 壁纸_太简单了!1分钟把Win 10 高颜值的开屏锁屏壁纸存储到电脑!...

    各位官人们大家好,我是宇宙第一可爱还不接受反驳的挨踢妹!今天跟大家分享一个自带高颜值的功能:偷偷把Windows的锁屏壁纸保存到电脑! Win 10系统有一个非常棒的功能,叫做[Windows 聚焦] ...

  8. re管理器修改音量_教你巧用RE管理器修改手机各种系统声音锁屏声音

    随着数码产品的快速更新大部分人都入手了智能手机,但却发现大部分智能手机系统声音(锁屏,触控等声音)都无法更换,只能换短信提示音,来电提示音,连低电量提示音也换不了,遇到那种难听的锁屏声难道还要忍下去? ...

  9. Android - 接收、监听系统短信广播

       广播接收者(BroadcastReceiver)是安卓的四大组件之一.类似于日常生活中的广播,安卓系统中的广播也有发送者和接收者.发送者通常是系统的应用程序,比如电池电量低.开关机.有电话或短信 ...

最新文章

  1. mysql生产环境加索引_MySQl开发和生产环境索引对比
  2. TCP协议连接过程详解
  3. 巧用ActionFilterAttribute实现API日志的记录
  4. Android 项目在Eclipse中的目录结构
  5. 云计算与分布式系统课程学习笔记(一)——云计算简介
  6. [osg]osgDB的加载机制,使用3DS插件做参考(转,整理现有osgDB资料)
  7. linux监控系统软件下载,Linux系统资源监控工具(LinuxSysMonitor)
  8. 大型文件如何传输到linux服务器,如何从大型机传输PS文件到Linux服务器?
  9. 一条对“失控的腾讯帝国:企鹅无法把控手机市场”的评论
  10. 笔记本不显示计算机储存盘,电脑开机黑屏只有鼠标箭头的解决办法 电脑硬盘无法分区怎么办...
  11. java搭建直播平台
  12. 生成sign(签名),以及校验工具类
  13. 【小白学OpenCV】(零)——计算机图像基础
  14. Mac OS X 背后的故事(三)Mach之父Avie Tevanian 1
  15. 程序员工资倒挂,IT行业薪资潜规则如何规避?
  16. 【STM32篇】驱动MXL90614红外测温模块
  17. 计算机网络与信息安全教育部重点实验室(西安电子科技大学),西安电子科技大学信息安全介绍...
  18. 出国(国际会议)-韩国
  19. mysql查找连接的用户名和密码忘记_mysql忘记帐号密码 解决办法。
  20. Vue框架---Vue入门

热门文章

  1. 得到经纬度数据使用Plotly画世界地图(美赛心得)
  2. Dev-C++安装OpenCV
  3. ad hoc java_Java并发编程--线程封闭(Ad-hoc封闭 栈封闭 ThreadLocal)
  4. python2.7打开webdriver打不开ie_18个提高效率改变生活的网站,为你打开新世界的大门...
  5. go mod拉取gitlab私有仓库代码问题最全总结
  6. 《MATLAB图像处理实例详解》:CH_7(图像分割技术)
  7. \t\t12时辰养生
  8. 机器人涂装工程师岗位英文缩写_公司里各职位名称的英文缩写
  9. [论文阅读1]Re-identification with RGB-D sensors
  10. 下列python语句正确的是min_下列Python语句错误的是? 答案:min = x if x y else ymax = x y ? x : yif (x y) print x...