我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android中怎么监听屏幕是否锁屏

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android中怎么监听屏幕是否锁屏

本篇文章给大家分享的是有关Android中怎么监听屏幕是否锁屏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

实现方法:

1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可以判断屏幕状态是否锁屏,但是只有屏幕状态发生改变时才会发出广播;

2)如果要在屏幕状态发生改变之前就想获取屏幕状态,可以通过反射机制调用PowerManager的isScreenOn方法 。

具体实现,见代码:

直接上代码:

1.定义一个接收广播的类

package com.app.lib; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.PowerManager;  public class ScreenListener {   private Context mContext;   private ScreenBroadcastReceiver mScreenReceiver;   private ScreenStateListener mScreenStateListener;   public ScreenListener(Context context) {     mContext = context;     mScreenReceiver = new ScreenBroadcastReceiver();   }      private class ScreenBroadcastReceiver extends BroadcastReceiver {     private String action = null;     @Override     public void onReceive(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();       }     }   }      public void begin(ScreenStateListener listener) {     mScreenStateListener = listener;     registerListener();     getScreenState();   }      private void getScreenState() {     PowerManager manager = (PowerManager) mContext         .getSystemService(Context.POWER_SERVICE);     if (manager.isScreenOn()) {       if (mScreenStateListener != null) {         mScreenStateListener.onScreenOn();       }     } else {       if (mScreenStateListener != null) {         mScreenStateListener.onScreenOff();       }     }   }      public void unregisterListener() {     mContext.unregisterReceiver(mScreenReceiver);   }      private void registerListener() {     IntentFilter filter = new IntentFilter();     filter.addAction(Intent.ACTION_SCREEN_ON);     filter.addAction(Intent.ACTION_SCREEN_OFF);     filter.addAction(Intent.ACTION_USER_PRESENT);     mContext.registerReceiver(mScreenReceiver, filter);   }   public interface ScreenStateListener {// 返回给调用者屏幕状态信息     public void onScreenOn();     public void onScreenOff();     public void onUserPresent();   } }

2、使用:

package com.app.lib; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends AppCompatActivity {   private ScreenListener screenListener ;   @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     screenListener = new ScreenListener( MainActivity.this ) ;     screenListener.begin(new ScreenListener.ScreenStateListener() {       @Override       public void onScreenOn() {         Toast.makeText( MainActivity.this , "屏幕打开了" , Toast.LENGTH_SHORT ).show();       }       @Override       public void onScreenOff() {         Toast.makeText( MainActivity.this , "屏幕关闭了" , Toast.LENGTH_SHORT ).show();       }       @Override       public void onUserPresent() {         Toast.makeText( MainActivity.this , "解锁了" , Toast.LENGTH_SHORT ).show();       }     });   } }

以上就是Android中怎么监听屏幕是否锁屏,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android中怎么监听屏幕是否锁屏

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android中怎么监听屏幕是否锁屏

本篇文章给大家分享的是有关Android中怎么监听屏幕是否锁屏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现方法:1)通过BroadcastReceiver接收广播Inte
2023-05-30

Android怎么监听屏幕旋转

这篇文章主要介绍Android怎么监听屏幕旋转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!背景关于个人,前段时间由于业务太忙,所以一直没有来得及思考并且沉淀点东西;同时组内一个个都在业务上能有自己的思考和总结,在这
2023-06-14

Android中判断屏幕是否亮屏和是否解锁功能

1.屏幕是否亮屏:PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); //true为打开,false为关闭
2022-06-06

怎么在Android中利用ScreenLockReceiver监听锁屏

今天就跟大家聊聊有关怎么在Android中利用ScreenLockReceiver监听锁屏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。监听屏幕锁屏状态(注册接受者--执行业务--注
2023-05-31

Android中怎么消除屏幕锁

Android中怎么消除屏幕锁,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。真正的去锁屏实现有一个 handlehide方法,真正的去隐藏锁屏实现 handleshow方法
2023-05-30

Android项目中如何实现判断屏幕是否亮屏与解锁

本篇文章给大家分享的是有关Android项目中如何实现判断屏幕是否亮屏与解锁,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 1.屏幕是否亮屏:PowerManager powe
2023-05-31

java编程怎么监听屏幕变化

在Java中,可以使用Java AWT和JavaFX来监听屏幕变化。使用Java AWT可以使用`java.awt.Toolkit`类和`java.awt.AWTEvent`类来监听屏幕变化。具体步骤如下:创建一个继承自`java.awt
2023-10-27

Android开发中怎么样实现屏幕切换监听功能

本篇文章为大家展示了Android开发中怎么样实现屏幕切换监听功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。由于屏幕切换会调用activity的各个生命周期,需要在manifest的activi
2023-05-31

Android中怎么检测屏幕手势

Android中怎么检测屏幕手势,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。layout/activity_gesture_detector.xml界面布局代码如下:
2023-05-30

Android怎么判断页面是否全屏

小编给大家分享一下Android怎么判断页面是否全屏,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Android 想判断 Activity 是否是全屏,网上找了些方法,看到有直接获取 flags 和一个具体的值比较,并没有
2023-06-14

Android应用中怎么截取手机屏幕

今天就跟大家聊聊有关Android应用中怎么截取手机屏幕,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方法1:首先想到的思路是利用SDK提供的View.getDrawingCache
2023-05-31

怎么在Android中获取的屏幕的尺寸

怎么在Android中获取的屏幕的尺寸?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、底部没有虚拟按键这里获取到的宽高,就是你眼睛能看到的,屏幕亮着的地方的宽高。 /**
2023-05-30

Android中怎么调用密码锁屏校验

这篇文章将为大家详细讲解有关Android中怎么调用密码锁屏校验,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1:获取managerKeyguardManager mKeyguardMgr
2023-06-20

怎么在Android应用中利用XML设置屏幕方向

这篇文章给大家介绍怎么在Android应用中利用XML设置屏幕方向,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android XML設置屏幕方向注意:Android只支持270度旋转。
2023-05-31

Android中怎么实现横竖屏幕切换生命周期

Android中怎么实现横竖屏幕切换生命周期,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、简介二、代码/activityLifeCycle_3Screen/Androi
2023-05-30

怎么在Android中利用反射机制获取屏幕的宽高

本文章向大家介绍怎么在Android中利用反射机制获取屏幕的宽高的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移
2023-06-06

怎么在Android中利用ViewPager实现一个屏幕滑动效果

本篇文章给大家分享的是有关怎么在Android中利用ViewPager实现一个屏幕滑动效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。创建View创建一个在之后作为fragm
2023-05-30

命令行中怎么查看无线网卡是否支持监听模式

这篇文章主要介绍了命令行中怎么查看无线网卡是否支持监听模式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。查看无线网卡是否支持监听模式在实施无线渗透测试时,通常需要将无线网卡设
2023-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录