热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android程序主动点亮&解锁屏幕的实现

在android开发中,经常会遇到一些情形需要程序主动维持屏幕的点亮状态,或者自己点亮屏幕并且解除屏幕锁定状态,这时可以用下面的方法予以解决。情形一:类似于阅读软件,在阅读过程中忽视

在android开发中,经常会遇到一些情形需要程序主动维持屏幕的点亮状态,或者自己点亮屏幕并且解除屏幕锁定状态,这时可以用下面的方法予以解决。

 

 

情形一:类似于阅读软件,在阅读过程中忽视系统的屏幕超时设置保持屏幕长亮。可以直接

在 onCreat() 方法中加上下面一句:

 

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

 

 

情形二:类似于闹钟,在锁屏状态下点亮屏幕。方法如下:

 

在AndroidManifest.xml中加上permission 权限:

 

在onCreat() 方法中添加以下语句:

 

//电源管理器

PowerManagerpm = (PowerManager)getSystemService(POWER_SERVICE);

WakeLockmWakelock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.SCREEN_DIM_WAKE_LOCK,"SimpleTimer");

 

flags参数说明:

PARTIAL_WAKE_LOCK: Screen off, keyboardlight off 

SCREEN_DIM_WAKE_LOCK: screen dim, keyboardlight off 

SCREEN_BRIGHT_WAKE_LOCK: screen bright,keyboard light off 

FULL_WAKE_LOCK: screen bright, keyboardbright

ACQUIRE_CAUSES_WAKEUP:当获得WAKE_LOCK时强制立即点亮屏幕和键盘

ON_AFTER_RELEASE:释放锁时重置activity timer

 

 

重载Avtivity的onResume()和onDestroy方法:

 

@Override

protectedvoid onResume() {

// TODOAuto-generated method stub

super.onResume();

mWakeLock.acquire();//点亮

}

 

@Override

protectedvoid onDestroy() {

// TODOAuto-generated method stub

mWakeLock.release();//关闭

super.onDestroy();

}

 

情形三:类似于来电,有时程序不仅仅需要主动点亮屏幕还需要解除屏幕的锁定状态。此时可以在情形二的基础上增添以下的代码:

 

在AndroidManifest.xml中加上permission 权限:

 

增加解除屏幕锁定的语句:

 

//键盘锁管理器对象  

KeyguardManager km= (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);  

 //这里参数”unLock”作为调试时LogCat中的Tag

KeyguardLockkl = km.newKeyguardLock("unLock");   

kl.disableKeyguard();  //解锁

 


推荐阅读
author-avatar
手机用户2502873425
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有