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

  • 相关阅读:
    06 Python字符编码与文件处理
    05 基本数据类型+五大数据类型
    04 Python入门学习-流程控制(if else elif while for)
    《算法导论》学习总结 — XX.第22章 图的基本算法
    Google在KDD2013上关于CTR的一篇论文
    二项堆
    B树、B+树、B*树
    mysql sql语句大全
    红黑树
    《算法导论》学习总结 — 13. 第13章 红黑树(2)
  • 原文地址:https://www.cnblogs.com/onelikeone/p/7047821.html
Copyright © 2020-2023  润新知