Android wakelock和keyguardManager

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)加个超时的时间。


  1. 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()函数之前,你必须要有过锁屏动作,否则不做任何操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值