【Android M】获取屏幕锁定的相关信息:“无”,“滑动”,“PIN码”,"图案","密码"
ENV: Android M 6.0.1
import android.os.UserHandle;
import com.android.internal.widget.LockPatternUtils;
import android.app.admin.DevicePolicyManager;
LockPatternUtils mLockPatternUtils = new LockPatternUtils(mContext);
int userId = UserHandle.myUserId();
boolean lockScreenDisabled = mLockPatternUtils.isLockScreenDisabled(userId);
boolean security = mLockPatternUtils.isSecure(userId);
boolean isLockPasswordEnabled = mLockPatternUtils.isLockPasswordEnabled(userId);
boolean isLockPatternEnabled = mLockPatternUtils.isLockPatternEnabled(userId);
final int quality = mLockPatternUtils.getKeyguardStoredPasswordQuality(userId);
Log.d(TAG, "lockScreenDisabled = " + lockScreenDisabled);
Log.d(TAG, "security = " + security);
Log.d(TAG, "isLockPasswordEnabled = " + isLockPasswordEnabled);
Log.d(TAG, "isLockPatternEnabled = " + isLockPatternEnabled);
Log.d(TAG, "quality = " + quality);
switch (quality) {
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
if (mLockPatternUtils.isLockPasswordEnabled(userId)) {
Log.d(TAG, "PIN码 安全模式");
}
break;
case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
if (mLockPatternUtils.isLockPasswordEnabled(userId)) {
Log.d(TAG, "密码 安全模式");
}
break;
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED:
if (mLockPatternUtils.isLockPatternEnabled(userId)) {
Log.d(TAG, "图案 安全模式");
}
break;
}
打印Log
zhanghu@winth:~$ adb logcat -s LockPatternUtilsHelp
--------- beginning of system
--------- beginning of main
//图案
11-02 14:36:22.721 4896 4896 D LockPatternUtilsHelp: lockScreenDisabled = false
11-02 14:36:22.721 4896 4896 D LockPatternUtilsHelp: security = true
11-02 14:36:22.721 4896 4896 D LockPatternUtilsHelp: isLockPasswordEnabled = false
11-02 14:36:22.721 4896 4896 D LockPatternUtilsHelp: isLockPatternEnabled = true
11-02 14:36:22.722 4896 4896 D LockPatternUtilsHelp: quality = 65536
11-02 14:36:22.722 4896 4896 D LockPatternUtilsHelp: 图案 安全模式
//PIN码
11-02 14:37:34.748 4896 4896 D LockPatternUtilsHelp: lockScreenDisabled = false
11-02 14:37:34.748 4896 4896 D LockPatternUtilsHelp: security = true
11-02 14:37:34.748 4896 4896 D LockPatternUtilsHelp: isLockPasswordEnabled = true
11-02 14:37:34.748 4896 4896 D LockPatternUtilsHelp: isLockPatternEnabled = false
11-02 14:37:34.748 4896 4896 D LockPatternUtilsHelp: quality = 131072
11-02 14:37:34.748 4896 4896 D LockPatternUtilsHelp: PIN码 安全模式
// 密码
11-02 14:38:10.930 4896 4896 D LockPatternUtilsHelp: lockScreenDisabled = false
11-02 14:38:10.930 4896 4896 D LockPatternUtilsHelp: security = true
11-02 14:38:10.930 4896 4896 D LockPatternUtilsHelp: isLockPasswordEnabled = true
11-02 14:38:10.930 4896 4896 D LockPatternUtilsHelp: isLockPatternEnabled = false
11-02 14:38:10.930 4896 4896 D LockPatternUtilsHelp: quality = 327680
11-02 14:38:10.931 4896 4896 D LockPatternUtilsHelp: 密码 安全模式
// 滑动
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: lockScreenDisabled = false
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: security = false
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: isLockPasswordEnabled = false
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: isLockPatternEnabled = false
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: quality = 0
// 无
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: lockScreenDisabled = true
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: security = false
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: isLockPasswordEnabled = false
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: isLockPatternEnabled = false
11-02 14:36:58.968 4896 4896 D LockPatternUtilsHelp: quality = 0
一 如何判断当前锁定方式是否为"无"?
通过LockPatternUtils类的isLockScreenDisabled判断
二 如何判断当前锁定方式是否为"滑动"?
通过LockPatternUtils类的! isSecure方法和! isLockScreenDisabled方法判断
三 如何判断当前锁定方式是否为"安全密码"锁屏?
通过LockPatternUtils类的isSecure方法和getKeyguardStoredPasswordQuality方法判断
PS:LockPatternUtils类为平台内部类,第三方应用层无法获取该类,可考虑通过反射调用亦可考虑其他方式判断
【Android M】获取屏幕锁定的相关信息:“无”,“滑动”,“PIN码”,"图案","密码"的更多相关文章
- android 获取 imei号码 及相关信息
android 获取 imei号码 参考:http://www.cnblogs.com/luxiaofeng54/archive/2011/03/01/1968063.html 核心代码: Imei ...
- AD命令获取计算机、用户相关信息
1. 获取AD用户相关信息(用户名.创建日期.最后修改密码日期.最后登录日期) Get AD users, Name/Created Date/Last change passwd Date/Last ...
- android中获取屏幕的信息
获取屏幕信息比较简单,可以通过android的sdk自带的工具类DisplayMetrics.话不多说,上代码: // 获取屏幕的信息 DisplayMetrics dm = new DisplayM ...
- android DisplayMetrics 获取屏幕分辨率
Android 提供DisplayMetircs 类可以很方便的获取分辨率.下面介绍 DisplayMetics 类: Andorid.util 包下的DisplayMetrics 类提供了一种关于显 ...
- Android之获取屏幕的尺寸像素及获取状态栏标题栏高度
在Android的实际开发中,会经常用到获取屏幕的尺寸的问题,以便设置一些布局在屏幕上的固定位置,从而适配各个屏幕的设备. 今天我就来讲一下怎么得到当前设备的屏幕像素吧: 一.在Activity中: ...
- Android中获取应用程序(包)的信息----PackageManager
本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagena ...
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagenam ...
- Android中获取应用程序(包)的信息-----PackageManager的使用
本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename ...
- 编程实战——电影管理器之利用MediaInfo获取高清视频文件的相关信息
随着高速(20M)宽带.HTPC.大容量硬盘(3T)的普及,下载高清片并利用大屏幕观看也成为普通的事情. 随着下载影片的增多,管理就有了问题,有时在茫茫文件夹下找寻一个影片也是一件费时费力的事. 于是 ...
随机推荐
- BusyBox getty
linux的登录主要是由两个文件在控制,/usr/sbin/getty来获得用户名,并进行检查用户名是否存在,然后将用户名传递给/usr/bin/login来获取用户输入密码和检查密码是否正确. 所以 ...
- Win10系统设置专用网络和公用网络
打开设置界面或者按Win+I组合键打开设置界面,打开后点击“网络和Internet”; 在网络和Internet界面,点击左侧“拔号”(有些是以太网),在右侧窗口点击“宽带连接”(大家基本都是以太网连 ...
- asp.net mvc 4 AntiForgery 提供的防伪标记适用于用户“”,但当前用户为“XX” 问题处理记录
情景: 某页面未登录下可以访问,但具体操作时发现未登录就弹出登录窗,待完成登录后继续操作. 当登录成功,前端继续操作(post后端接口)时发现以下错误: 提供的防伪标记适用于用户“”,但当前 ...
- MySQL和Redis面试题小结
MySQL专题 1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超 ...
- java list分组 list里面分装的都是对象 按照对象的属性来分组
http://www.iteye.com/problems/86110 —————————————————————————————————————————————————————————— List& ...
- easui Pagination Layout
分页显示方式有几种 layout: ['first', 'prev', 'next', 'last'] layout: ['list', 'sep', 'first', 'prev', 'sep', ...
- 统一建模语言 UML (2)
UML的图 1.用例图(use case diagram) 用例图(Use Case Diagram)是被称为参与者(Actor)的外部用户所能观察到的系统功能的模型图 列出系统中的用例和参与者 显示 ...
- 【转】OPenGL MFC绘图
一.简介 GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC&q ...
- Qt模态与非模态
模态对话框就是指在子对话框弹出时,焦点被强行集中于该子对话框,子对话框不关闭,用户将无法操作其他的窗口.非模态相反,用户仍然可以操作其他的窗口,包括该子对话框的父对话框. 如果从线程角度来讲,模态对话 ...
- R语言绘图边框的单位
在R语言中指定画图边框时,通常使用两种单位, lines 和 inches 当然,这两个单位之间是可以相互转换的,那么 1 inch = ? line 答案是1 inches = 5 lines 下面 ...