【Android M】获取屏幕锁定的相关信息:“无”,“滑动”,“PIN码”,"图案","密码"
2017-06-19 11:07
375 查看
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类为平台内部类,第三方应用层无法获取该类,可考虑通过反射调用亦可考虑其他方式判断
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 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- android中获取屏幕相关信息
- Android DisplayMetrics 获取和屏幕相关的信息
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- Android 获取屏幕相关信息
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- android中获取屏幕相关信息
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- android开发_如何获取android应用程序的相关信息并显示
- android 获取手机相关信息
- Android之获取手机相关信息
- 获取Android各类系统相关信息的接口实现代码
- Android点亮屏幕或屏幕解锁和锁定以及其他相关权限实现代码
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
- 金蝶EAS登录获取用户相关信息失败、EAS默认用户名、密码
- android-获得".apk"文件的相关信息。包名、版本号等等