Android wakelock和keyguardManager
2015-06-02 13:53
344 查看
wakelock唤醒设备,keyguardManager操作锁屏
1.wakelock唤醒设备,下面是一段代码。使用wakelock时要在manifest.xml里加入权限:
<uses-permission android:name="android.permission.WAKE_LOCK" > <uses-permission android:name="android.permission.DEVICE_POWER" >
//创建PowerManager对象 PowerManager mPm = (PowerManager) getSystemService(Context.POWER_SERVICE); //创建walelock对象 Wakelock mScreenonWakeLock = mPm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "AIYONG"); //调用唤醒函数,传入一个超时的限制 mScreenonWakeLock.acquire(2000); //释放wakelock mScreenonWaleLock.release();
wakelock对象中的几个参数说明:
PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
ACQUIRE_CAUSES_WAKEUP:不会唤醒设备,强制屏幕马上高亮显示,键盘灯开启。
ON_AFTER_RELEASE:WakeLock 被释放后,维持屏幕亮度一小段时间
不同的参数对应了不同的wakelock对象,根据自己的需求选择合适的参数,一般不唤醒屏幕都是使用PARTIAL_WAKE_LOCK这个参数的。
需要注意的是使用完wakelock后一定要记得释放wakelock,不然手机一直处于唤醒状态,手机不能进入休眠电量一下就没了。所以wakelock的acquire()和release()是成对出现的。唤醒后做完事情或就release释放掉。为了保险起见会在acquire(2000)加个超时的时间。
keyguardManager的使用,下面是解锁和锁屏的一段代码:
使用keyguard时也是需要权限的,需要在manifest.xml里加入下面的权限
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
KeyguardManager mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); //创建keyguard对象 KeyguardLock mKeyguardLock = mKeyguardManager.newKeyguardLock("AIYONG"); //解锁 mkeyguardLock.disableKeyguard(); //判断是否锁屏,没锁就锁屏 if (!mKeyguardManager.inKeyguardRestrictedInputMode()) { mkeyguardLock.reenableKeyguard(); }
需要注意的是:锁屏reenableKeyguard()这个函数,如果在调用disableKeyguard()函数之前是锁屏的,那么就进行锁屏,否则不进行任何操作。当然如果之前没调用disableKeyguard()函数,也不进行任何操作。所以调用reenableKeyguard()函数之前,你必须要有过锁屏动作,否则不做任何操作。
相关文章推荐
- Android Xfermode 实战 实现圆形、圆角图片
- Android应用Context详解及源码解析
- Android进程间通信系列-----------Binder设计思想
- Android frameanimation ClassCastException异常
- Android性能优化一些方法
- android学习---- WindowManager 接口 (
- Android View坐标getLeft, getRight, getTop, getBottom
- Android:Layout_weight的深刻理解
- Android照相机模块编程 照片颠倒问题及查询摄像头参数问题的解决
- Android源码下载及开发环境的搭建
- Android手机分辨率基础知识(DPI,DIP计算)
- Android中xml设置Animation动画效果详解
- Android应用层View绘制流程与源码分析
- 解决cygwin上编译boost for android 的thread库找不到"process.h"
- Android性能优化典范(二)
- android 产生0~100之间的随机数
- Android常用的工具类
- Android 测试工具------ monkeyrunner工具
- Android ListView实现下拉刷新、加载更多
- android设备休眠机制