android屏幕解锁新思路
最近接了个私活,涉及到屏幕解锁,由于从来没接触过这块方面的知识,网上找了很多相关的内容,基本上都是以
private PowerManager.WakeLock wl;
private KeyguardManager keyguardManager;
public static KeyguardLock keyguardLock;
wl = powerManger.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "bright");
keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
keyguardLock = keyguardManager.newKeyguardLock("");
keyguardLock.disableKeyguard();
keyguardLock.reenableKeyguard();
拿到屏幕锁持有并清除,再释放为主。
但是这个思路有个缺点就是在你退出应用后,,系统会拿到你释放的屏幕锁并重新锁住屏幕,这就造成了不好的用户体验。
经过翻阅相关API 发现一个很有用的参数 :
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
位于 package android.view.WindowManager.
其注释如下:
/** Window flag: when set the window will cause the keyguard to
* be dismissed, only if it is not a secure lock keyguard. Because such
* a keyguard is not needed for security, it will never re-appear if
* the user navigates to another window (in contrast to
* {@link #FLAG_SHOW_WHEN_LOCKED}, which will only temporarily
* hide both secure and non-secure keyguards but ensure they reappear
* when the user moves to another UI that doesn't hide them).
* If the keyguard is currently active and is secure (requires an
* unlock pattern) than the user will still need to confirm it before
* seeing this window, unless {@link #FLAG_SHOW_WHEN_LOCKED} has
* also been set.
*/
public static final int FLAG_DISMISS_KEYGUARD = 0x00400000;
大意为 这个窗口标志位 设置时该窗口会导致键盘锁在屏幕唤醒后要被解锁,这种用法只有当它不是安全的锁键盘锁(即非键盘输入或者手势解锁等等)。因为这种键盘锁不需要用于安全,它(键盘锁)将永远不会重新出现如果用户导航到另一个窗口(相对于 FLAG_SHOW_WHEN_LOCKED,这将只是暂时隐藏安全和非安全的 keyguards,但确保当用户移到另一个用户界面,并不掩饰他们的时候,它们又会出现)。如果键盘锁当前处于活动状态,并且是安全的 (需要屏幕解锁图案) 用户将仍然会看到解锁的窗口,除非还设置了 FLAG_SHOW_WHEN_LOCKED。
也就是说在android的基本锁屏中我们是可以利用这个特性进行屏幕解锁的。
在代码中的使用为:
在 oncreate()方法中,在你setContentView之前,
添加windows 的flags如下:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.lockscreen);
即可在唤醒屏幕的同时将屏幕锁解开而且无后患。
android屏幕解锁新思路相关推荐
- 计算Android屏幕解锁组合数
计算Android屏幕解锁组合数 晚饭时和同事聊到安卓屏幕解锁时会有多少种解锁方案,觉得很有趣,吃完饭开始想办法解题,花了大概2个小时解决.思路如下: 使用索引值0-9表示从左到右.从上到下的9个点, ...
- Android屏幕解锁图案破解
标 题: [原创]Android屏幕解锁图案破解 作 者: gamehacker 时 间: 2013-03-27,14:29:58 链 接: http://bbs.pediy.com/showthre ...
- 【移动安全实战篇】————5、Android屏幕解锁图案破解
Android手机上有一个屏幕解锁的应用相信大家都不陌生,在 Android 设备上,用户可以通过设置锁定图案作为密码对设备用户界面进行锁定,锁定界面如下图所示. 一般的Android手机的锁定界面由 ...
- android屏幕解锁新解
最近因为一些事接触到android屏幕解锁这块,刚开始查询网上资料,绝大部分以keyguardLock 来进行获取屏幕锁和接触屏幕锁,其思路如下: // KeyguardManager keyguar ...
- Android屏幕解锁和点亮
有些场景需要程序自动点亮屏幕,解开屏幕锁,以方便用户即时操作,下面用代码来实现这一功能: 1.//得到键盘锁管理器对象 2.KeyguardManager km= (KeyguardManager) ...
- android屏幕解锁图案,安卓手机图案屏幕锁解锁方法!!
当你的安卓手机密码锁忘记了怎么办?今天一不小心把手机改了图案锁结果由于改的时候匆忙结果忘记了,在网上找了好多方法都无果,也有人说重新刷机就会好!!这个简直就是废话,刷机当然能好了!! 关键是解锁要解决 ...
- 仿写Android屏幕解锁小应用
近日需要设置密码并加密,因此仿写了Android的位置和安全设置有更改屏幕锁定的设置.先看效果图: 点击后,第一次是可设置密码. 设置成功密码后再点Button按钮将会出现: 由于时间紧,因此只研究了 ...
- Android点亮屏幕或屏幕解锁和锁定
1.Android屏幕常亮/点亮 //保持屏幕常亮 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); ...
- 4个顶级的华为/小米/OPPO/Vivo手机屏幕解锁工具软件
有好几次用户发现自己被锁定在他们的华为/小米/OPPO/Vivo设备之外,我们知道这可能是一种非常可怕的体验.在这种情况下,找到安卓手机解锁软件,重新获得手机中重要数据和文件的访问权限.看看这篇文章, ...
最新文章
- 补充知识--三相电机
- matlab 将图片立体化,MATLAB基础(五)——绘制立体图
- 大年初二,今年过年你选择在男方家过还是女方家过?
- ajax请求php保存数据格式,jQuery ajax与php进行数据交互(数据格式问题)
- Remove Duplicates from Sorted ListII
- Git提交代码时报 Please tell me who you are
- nancy框架安装并使用
- leetcode 501. 二叉搜索树中的众数(Java版)
- 技术管理:技术负责人所需的四个核心能力
- Ubuntu18使用docker快速安装oracle 11g
- 大数据时代,新起的数据有哪几种模型
- 第九届蓝桥杯C++B组
- java字符串遮蔽处理_java 字符串处理
- Pyqt之QApplication
- matlab在傅里叶里的应用,MATLAB在傅里叶变换中的应用
- xhr的get和post请求的简单实现
- linux进程命令at,Linux进程管理命令之sa/at/atq。
- python 语音处理工具包AudioSegment的基本使用
- 01. 利用正则表达式提取文章中的所有英文单词
- 图书借阅管理系统的设计与实现/书籍借还管理系统
热门文章
- zabbix监控网络设备(华为AC)
- 传感器_三相-双极性-开关型-霍尔传感器 速度+电角度解算理解
- 使用U盘自制Linux操作系统
- 从mat文件生成excel表格再生成latex: Mat2Excel2Latex
- 电脑板绘绘画:零基础的我们又该如何“入门”
- 数字化和自动化的潮流:外贸企业如何应对?
- 【名企招聘】4月29日19点,巨杉数据库-带着岗位来招人啦
- Lenovo 万全T260 重装windows server 2003
- provider android简书,android FileProvider的使用
- 使Outlook停止使用Internet Explorer的RSS源