最近接了个私活,涉及到屏幕解锁,由于从来没接触过这块方面的知识,网上找了很多相关的内容,基本上都是以

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屏幕解锁新思路相关推荐

  1. 计算Android屏幕解锁组合数

    计算Android屏幕解锁组合数 晚饭时和同事聊到安卓屏幕解锁时会有多少种解锁方案,觉得很有趣,吃完饭开始想办法解题,花了大概2个小时解决.思路如下: 使用索引值0-9表示从左到右.从上到下的9个点, ...

  2. Android屏幕解锁图案破解

    标 题: [原创]Android屏幕解锁图案破解 作 者: gamehacker 时 间: 2013-03-27,14:29:58 链 接: http://bbs.pediy.com/showthre ...

  3. 【移动安全实战篇】————5、Android屏幕解锁图案破解

    Android手机上有一个屏幕解锁的应用相信大家都不陌生,在 Android 设备上,用户可以通过设置锁定图案作为密码对设备用户界面进行锁定,锁定界面如下图所示. 一般的Android手机的锁定界面由 ...

  4. android屏幕解锁新解

    最近因为一些事接触到android屏幕解锁这块,刚开始查询网上资料,绝大部分以keyguardLock 来进行获取屏幕锁和接触屏幕锁,其思路如下: // KeyguardManager keyguar ...

  5. Android屏幕解锁和点亮

    有些场景需要程序自动点亮屏幕,解开屏幕锁,以方便用户即时操作,下面用代码来实现这一功能: 1.//得到键盘锁管理器对象 2.KeyguardManager  km= (KeyguardManager) ...

  6. android屏幕解锁图案,安卓手机图案屏幕锁解锁方法!!

    当你的安卓手机密码锁忘记了怎么办?今天一不小心把手机改了图案锁结果由于改的时候匆忙结果忘记了,在网上找了好多方法都无果,也有人说重新刷机就会好!!这个简直就是废话,刷机当然能好了!! 关键是解锁要解决 ...

  7. 仿写Android屏幕解锁小应用

    近日需要设置密码并加密,因此仿写了Android的位置和安全设置有更改屏幕锁定的设置.先看效果图: 点击后,第一次是可设置密码. 设置成功密码后再点Button按钮将会出现: 由于时间紧,因此只研究了 ...

  8. Android点亮屏幕或屏幕解锁和锁定

    1.Android屏幕常亮/点亮 //保持屏幕常亮 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); ...

  9. 4个顶级的华为/小米/OPPO/Vivo手机屏幕解锁工具软件

    有好几次用户发现自己被锁定在他们的华为/小米/OPPO/Vivo设备之外,我们知道这可能是一种非常可怕的体验.在这种情况下,找到安卓手机解锁软件,重新获得手机中重要数据和文件的访问权限.看看这篇文章, ...

最新文章

  1. 补充知识--三相电机
  2. matlab 将图片立体化,MATLAB基础(五)——绘制立体图
  3. 大年初二,今年过年你选择在男方家过还是女方家过?
  4. ajax请求php保存数据格式,jQuery ajax与php进行数据交互(数据格式问题)
  5. Remove Duplicates from Sorted ListII
  6. Git提交代码时报 Please tell me who you are
  7. nancy框架安装并使用
  8. leetcode 501. 二叉搜索树中的众数(Java版)
  9. 技术管理:技术负责人所需的四个核心能力
  10. Ubuntu18使用docker快速安装oracle 11g
  11. 大数据时代,新起的数据有哪几种模型
  12. 第九届蓝桥杯C++B组
  13. java字符串遮蔽处理_java 字符串处理
  14. Pyqt之QApplication
  15. matlab在傅里叶里的应用,MATLAB在傅里叶变换中的应用
  16. xhr的get和post请求的简单实现
  17. linux进程命令at,Linux进程管理命令之sa/at/atq。
  18. python 语音处理工具包AudioSegment的基本使用
  19. 01. 利用正则表达式提取文章中的所有英文单词
  20. 图书借阅管理系统的设计与实现/书籍借还管理系统

热门文章

  1. zabbix监控网络设备(华为AC)
  2. 传感器_三相-双极性-开关型-霍尔传感器 速度+电角度解算理解
  3. 使用U盘自制Linux操作系统
  4. 从mat文件生成excel表格再生成latex: Mat2Excel2Latex
  5. 电脑板绘绘画:零基础的我们又该如何“入门”
  6. 数字化和自动化的潮流:外贸企业如何应对?
  7. 【名企招聘】4月29日19点,巨杉数据库-带着岗位来招人啦
  8. Lenovo 万全T260 重装windows server 2003
  9. provider android简书,android FileProvider的使用
  10. 使Outlook停止使用Internet Explorer的RSS源