zoukankan      html  css  js  c++  java
  • 【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类为平台内部类,第三方应用层无法获取该类,可考虑通过反射调用亦可考虑其他方式判断

  • 相关阅读:
    overflow妙用--去除默认滚动条,内容仍可滚动
    call()与构造函数的运用
    this与super
    构造方法
    多态
    抽象类与接口
    面向对象的基本特征
    类与对象
    面向过程与面向对象
    java自动拆装箱
  • 原文地址:https://www.cnblogs.com/onelikeone/p/7047821.html
Copyright © 2011-2022 走看看