Android 说说亮屏锁和键盘锁

  Android中的两把锁 – WalkLock and KeyguardLock 详细分析
       WalkLock – 顾名思义 唤醒锁 点亮屏幕用的
       KeyguardLock – 顾名思义 键盘锁 解锁键盘用的

       详细介绍:
       1: WalkLock 唤醒锁
       WalkLock真的能点亮屏幕吗?
       答案是肯定的。 可是有时候为什么不点亮屏幕,这个就是参数设置的问题了。

java代码:
  1. PowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "Gank");
  2. PowerManager.FULL_WAKE_LOCK //这个参数是手机点亮的程度,(什么Cpu,屏幕亮度,键盘灯)
  3. PowerManager.ACQUIRE_CAUSES_WAKEUP //关键是这个参数的理解。
复制代码

       WalkLock点亮屏幕并非真的去点亮了屏幕,你可以理解为,它通过Android组件(Activity)去点亮了屏幕。
       假如一个通知想去点亮屏幕,问题来了,它能点亮吗? 肯定不行。
       不过拥有这个PowerManager.ACQUIRE_CAUSES_WAKEU参数,你就可以点亮屏幕了。它使WalkLock不再依赖组件就可以点亮屏幕了。

       WalkLock如何获得屏幕的状态?
       PowerManager.isScreenOn()方法;这个方法返回true: 屏幕是唤醒的  返回false:屏幕是休眠的

       WalkLock唤醒和休眠的方法?
       WalkLock.aquire() 在屏幕休眠的状态下唤醒屏幕
       WalkLock.release() 在屏幕点亮的状态下,使屏幕休眠。
       WalkLock.release()这个方法有个需要注意的地方:

       例如:WalkLockA对象先唤醒了屏幕再使屏幕休眠。

       屏幕本身就是唤醒状态,WalkLockA对象没有唤醒过屏幕,WalkLockA对象如果尝试使屏幕休眠。会产生一个异常 UnLock Sreen。

       2:KeyguardLock 键盘锁
       KeyguardLock获得当前屏幕是否解锁?
       KeygroundManager.inKeyguardRestrictedInputMode() 返回true表示键盘锁住, 返回false表示键盘解锁中

       KeyguardLock给屏幕解锁和上锁?
       KeyguardLock.disableKeyguard()解锁键盘
       KeyguardLock.reenableKeyguard()锁键盘
       KeyguardLock没有上面唤醒锁的问题,就是无论你键盘是否由KeyguardLockA解锁,你调用KeyguardLockA
对象的reenableKeyguard()方法都不会有异常。

       这两把锁一些概念性的理解,假如你认为你获得了一个键盘锁对象,你就可以锁屏幕了。这个就大错特错了。

       你锁不了其他程序打开的屏幕(如果可以的话,一个for循环一直锁你屏幕,你哭都没眼泪)
       你可以控制自己的锁,别想着别人的锁。

       最后总结下用法:
       一般这两把锁都是配合使用的,你解锁屏幕的时候肯定不希望屏幕漆黑一片。关闭键盘锁的时候希望屏幕也同时休眠。

       问题:

       1:我尝试手动关闭屏幕,可是总继续亮那么一小会。
       2:如果手机自动关闭屏幕的话,不会有这个问题。

       主要代码展示:

java代码:
  1. KeyguardManager keyguardManager = (KeyguardManager) this.getSystemService(Context.KEYGUARD_SERVICE);

  2. KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("随便写点啥都行");
  3. keyguardLock.disableKeyguard();
复制代码

java代码:
  1. /**
  2. * 点亮屏幕
  3. */
  4. private void lightScreen(){
  5. PowerManager powerManager = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
  6. WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP,"" );
  7. wakeLock.acquire();
  8. }
复制代码

转自:
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=95030

转载于:https://www.cnblogs.com/deve/archive/2011/11/01/2569089.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

频谱分析幅值单位_案例分享丨某水泥厂入窑斗提减速机不对中故障分析及处理...

斗式提升机是利用均匀固接于无端奉引构件上的一系列料斗,竖向提升物料的连续输送机械。分为环链、板链和皮带三种。今天因大师将给大家分享一个水泥厂的入窑斗提减速机不对中故障的诊断案例。1 设备概况设备基本信息:设备位置:1#产线入窑斗提&#xff08…

中国高校鄙视链指南

全世界只有3.14 % 的人关注了爆炸吧知识某一天,中国各大高校齐聚一堂,开了一场“拒绝高校鄙视链座谈会”,誓要消除高校之间的不平等,不让莘莘学子因为母校问题而被人低看一眼,遗憾终生。首先主持人介绍清华北大发言&am…

.NET 6 ThreadPool 实现概述

前言在即将发布的 .NET 6 runtime 中,默认的线程池实现从 C 代码改为了 C#,更方便我们学习线程池的设计了。https://github.com/dotnet/runtime/tree/release/6.0/src/libraries/System.Threading.ThreadPool新的线程池实现位于 PortableThreadPool 中&a…

嵌入式linux配置qt,基于qt的嵌入式Linux开发环境搭建

摘要:本文主要介绍在PC机上搭建基于QT的嵌入式开发环境,其中很多源文件都是开发板自带,需要相应资料的可以评论留下邮箱地址。版本:交叉编译工具链:GCC 4.7.3 【gcc-linaro-arm-linux-gnueabihf-4.7-2012.12-20121214…

三种方式使得iOS应用能够在后台进行数据更新和下载

三种方式使得iOS程序即使在关闭或崩溃的情况下也能够在后台持续进行一些任务,比如更新程序界面快照,下载文件等。这三个方法分别是Background Fetch,Remote Notification和NSURLSession的backgroundSessionConfiguration Background Fetch 开…

漫水填充及Photoshop中魔术棒选择工具的实现

今天写程序中有一个地方用到了漫水填充(FloodFill)。所谓漫水填充,简单来说,如下图中左图,白布上有一块红色的斑点,在这个红色的斑点上点一下,就自动选中了和该点相连的红色的区域,接…

Hibernate注解之@Enumerated

Enumerated(valueEnumType.ORDINAL)采用枚举类型的序号值与数据库进行交互, 此时数据库的数据类型需要是数值类型,例如在实际操作中 CatTest ct new CatTest(); ct.setColor(Color.BLUE); 当我们将对象gt保存到数据库中的时候,数据库中存储的…

ios支付宝支付失败不回调_iOS 支付宝网页支付回调问题

今天遇到支付宝网页支付回调的问题当手机里面没有支付宝客户端的时候,会自动调起网页支付页面,但是我发现我原来写在AppDelegate.m里面的代码没走。造成的结果是,不管是支付成功,还是退出支付,都没有反应。解决办法4&g…

代理管家app_亲亲小保社保管家app2021下载_亲亲小保社保管家app最新版下载

亲亲小保社保管家是一款便捷社保服务软件,为用户提供全面便捷的社保公积金服务,可以解决生活中的各种居住,社会保障等,感兴趣的朋友快来下载亲亲小保社保管家吧。亲亲小保社保管家app特色1.、社保服务、社保代理、社保托管、工资代…

上大学后男生的两种变化

1 一只处女座的喵。。。2 螃蟹怎么都没想到自己有一天会变成糖葫芦3 还以为厨师被劫持了4 未来感十足的红绿灯概念设计……5 外国留学生的眼中中文6 上大学后男生的两种变化,可太真实了7 你这样欺负人我要报警哦8 一年级的题你点的每个赞,我都认真当成了…

linux怎么杀死线程c语言,教程-linux下c语言编程 第一弹-线程的使用

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*linux下最常用的应该就是pthread线程库了本教程就是关于pthread的关于线程是什么东西我就不赘述了 百科上都有*/#include#include//pthread库的头文件//声明并定义一个函数void*function(void*data){printf("start\n")…

ADO.NET笔记——基本概念

ADO.NET中的主要对象: Connection:连接对象。用于建立从应用程序到数据库服务器指定数据库的连接通道Command:命令对象。用于执行增删查改等数据库语句命令DataReader:数据阅读器对象。用于从数据库逐行返回数据DataAdapter&#…

关于 Azure SQL 数据库你不知道的 5 件事

点击上方蓝字关注“汪宇杰博客”原文:Azure Tips and Tricks翻译:汪宇杰Azure SQL Database如果您喜欢 SQL Server,那么您可能也喜欢 Azure SQL 数据库。Azure SQL 数据库是 Azure 中的 SQL Server 即服务。你负责处理数据,Azure …

如何在PowerPoint中插入带语法高亮的程序代码

最近在做Python的PPT时发现,向PowerPoint中插入带格式的源代码甚是不便,经搜索有篇文章说的还是很管用的,可以借鉴一下: Syntax highlighting source code in Word and PowerPoint 能导出格式的编辑器就比较多了,我用的…

win7共享xp打印机_解决共享打印机不能使用的问题

针式打印机如何设置共享打印找不到驱动就需要重新下载安装适合版本的驱动,以及.INF文件网络打印机连接模式步骤:a.预先得知网络打印机的IP地址,打开它的共享b.【开始】-【设备与打印机】-【添加打印机】-【添加本地打印机】c.选择TCP/IP接口-…

网页固定宽度布局

&#xff08;一个固定宽度div布局&#xff09; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <h…

rk3399性能_AIIA AI公布首轮评估结果:瑞芯微RK3399数据抢眼

人工智能产业发展联盟(AIIA)正式发布“AIIA DNN benchmark V0.5”首轮评估结果。该评估在AIIA权威测试平台完成&#xff0c;基于端侧推断任务的深度神经网络处理器基准测试。在四大典型应用场景下&#xff0c;能够客观反映具有深度学习处理能力的处理器或加速器的性能水平。评估…

世界上最欢乐的职业,可能就是蹦极的工作人员了!

1 他们叫的有多大声我笑的就有多大声▼2 这个手动转向灯可太可爱了▼3 真正的倒立洗头▼4 看看&#xff01;脚踏两只船多危险&#xff01;▼5 穿上这件衣服你和猪八戒就只差一个肚子了▼6 螳螂才是真正的拟态大神▼7 你是哪种&#xff1f;▼

linux系统管理命令使用,Linux系统管理使用之基本命令(1)

基本命令1.Linux的基本原则&#xff1a;1、由目的单一的小程序组成&#xff1b;组合小程序完成复杂任务&#xff1b;2、一切皆文件&#xff1b;3、尽量避免捕获用户接口&#xff1b;(尽量不和用户进行交互&#xff0c;就是一个程序一但开始运行&#xff0c;就不需要用户进行任何…

Apache-Jmeter监控服务资源

Jmeter本身没有监控服务器资源的功能&#xff0c;需要添加额外的插件&#xff0c;插件参考的网址&#xff1a;http://www.jmeter-plugins.org/ 一、监控原理图二、Jmeter-Plugs和PerfMonAgent的下载和安装&#xff08;1&#xff09;Jmeter-Plugs的下载网址http://www.jmeter-pl…