监听系统开屏、锁屏、解锁、按下home键、按下多任务键【未完待续】
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键、按下多任务键【未完待续】相关推荐
- android 监听屏幕是否锁屏
今天,简单讲讲如何监听手机屏幕是否锁屏. 实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可 ...
- Android 监听home、锁屏、解屏简单实现
activity 代码: package com.demo;import android.app.ListActivity; import android.content.Context; impor ...
- Android平台监听系统截屏方案预研及相关知识点
最近有个针对系统截屏的需求,所以预研了Android平台上捕获系统截屏的方案. 最直接的方式就是监听手机的系统截屏组合键(电源键+音量下键),但是这种方式实现难度大,且有的机型使用特殊手势进行截屏,兼 ...
- Android 监听 Android中监听系统网络连接打开或者关闭的实现代码
本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.c ...
- android ContentObserver监听系统短信和备份短信到本地
contentProvider中的一个工具,记录一下. 监听短信: package com.example.messagedemo;import android.net.Uri; import and ...
- [html] HTML5如何监听video的全屏和退出全屏?
[html] HTML5如何监听video的全屏和退出全屏? 监听fullscreenchange事件document.addEventListener('fullscreenchange', (ev ...
- ubuntu命令 图片 壁纸_太简单了!1分钟把Win 10 高颜值的开屏锁屏壁纸存储到电脑!...
各位官人们大家好,我是宇宙第一可爱还不接受反驳的挨踢妹!今天跟大家分享一个自带高颜值的功能:偷偷把Windows的锁屏壁纸保存到电脑! Win 10系统有一个非常棒的功能,叫做[Windows 聚焦] ...
- re管理器修改音量_教你巧用RE管理器修改手机各种系统声音锁屏声音
随着数码产品的快速更新大部分人都入手了智能手机,但却发现大部分智能手机系统声音(锁屏,触控等声音)都无法更换,只能换短信提示音,来电提示音,连低电量提示音也换不了,遇到那种难听的锁屏声难道还要忍下去? ...
- Android - 接收、监听系统短信广播
广播接收者(BroadcastReceiver)是安卓的四大组件之一.类似于日常生活中的广播,安卓系统中的广播也有发送者和接收者.发送者通常是系统的应用程序,比如电池电量低.开关机.有电话或短信 ...
最新文章
- mysql生产环境加索引_MySQl开发和生产环境索引对比
- TCP协议连接过程详解
- 巧用ActionFilterAttribute实现API日志的记录
- Android 项目在Eclipse中的目录结构
- 云计算与分布式系统课程学习笔记(一)——云计算简介
- [osg]osgDB的加载机制,使用3DS插件做参考(转,整理现有osgDB资料)
- linux监控系统软件下载,Linux系统资源监控工具(LinuxSysMonitor)
- 大型文件如何传输到linux服务器,如何从大型机传输PS文件到Linux服务器?
- 一条对“失控的腾讯帝国:企鹅无法把控手机市场”的评论
- 笔记本不显示计算机储存盘,电脑开机黑屏只有鼠标箭头的解决办法 电脑硬盘无法分区怎么办...
- java搭建直播平台
- 生成sign(签名),以及校验工具类
- 【小白学OpenCV】(零)——计算机图像基础
- Mac OS X 背后的故事(三)Mach之父Avie Tevanian 1
- 程序员工资倒挂,IT行业薪资潜规则如何规避?
- 【STM32篇】驱动MXL90614红外测温模块
- 计算机网络与信息安全教育部重点实验室(西安电子科技大学),西安电子科技大学信息安全介绍...
- 出国(国际会议)-韩国
- mysql查找连接的用户名和密码忘记_mysql忘记帐号密码 解决办法。
- Vue框架---Vue入门
热门文章
- 得到经纬度数据使用Plotly画世界地图(美赛心得)
- Dev-C++安装OpenCV
- ad hoc java_Java并发编程--线程封闭(Ad-hoc封闭 栈封闭 ThreadLocal)
- python2.7打开webdriver打不开ie_18个提高效率改变生活的网站,为你打开新世界的大门...
- go mod拉取gitlab私有仓库代码问题最全总结
- 《MATLAB图像处理实例详解》:CH_7(图像分割技术)
- \t\t12时辰养生
- 机器人涂装工程师岗位英文缩写_公司里各职位名称的英文缩写
- [论文阅读1]Re-identification with RGB-D sensors
- 下列python语句正确的是min_下列Python语句错误的是? 答案:min = x if x y else ymax = x y ? x : yif (x y) print x...