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

  • 相关阅读:
    java.net.ConnectException: localhost/127.0.0.1:8088 Connection refused java程序员
    网络模式:GSM,WCDMA,CDMA2000什么意思 java程序员
    Spring contextConfigLocation java程序员
    src总结 java程序员
    广州天河软件园面试Java实习生时的一些面试题 java程序员
    纠结了好久的Android SDK无法更新问题 java程序员
    Android SDK 2.3/3.0/4.0/4.1 下载与安装教程 java程序员
    域名解析文件hosts文件是什么?如何修改hosts文件? java程序员
    安卓模拟器Android SDK 4.0.3 R2安装完整图文教程 java程序员
    SpringBoot+mongoDB实现id自增
  • 原文地址:https://www.cnblogs.com/onelikeone/p/7047821.html
Copyright © 2011-2022 走看看