2

Android スマートフォンにログインするときに、パスワード、暗証番号、またはパターンが必要かどうかを判断しようとしています。電話がログオン時にパターンを使用するかどうか、およびパスワード/ピン番号がログオン時に使用されるかどうかを判断できますが、電話がログオン時にパスワードのみとピン番号のみを使用する場合はどうすればわかりますか?

以下のコードは、私がこれまでに持っているものです。

        //determine if phone uses pattern, pin or password at log on

        //lockPatternEnable returns 1 if pattern lock enabled and 0 if pin/password password enabled
        ContentResolver cr = getBaseContext().getContentResolver();
        lockPatternEnable = Settings.Secure.getInt(cr, Settings.Secure.LOCK_PATTERN_ENABLED, 0);

        //returns 1 if pin/password used. 0 if not
        KeyguardManager keyguardManager = (KeyguardManager) getBaseContext().getSystemService(Context.KEYGUARD_SERVICE);
        if( keyguardManager.isKeyguardSecure()) 
        {
           //it is pin or password protected
           pinPasswordEnable=1;
        } 
        else 
        {
           //it is not pin or password protected 
            pinPasswordEnable=0;
        }//http://stackoverflow.com/questions/6588969/device-password-in-android-is-existing-or-not/18716253#18716253

        if(pinPasswordEnable==0 && lockPatternEnable==1)
        {
            //pattern 
        }
        else if(pinPasswordEnable==1 && lockPatternEnable==0)
        {
            //pin or password
        }
4

1 に答える 1

0

このクラスを使用して、 isDeviceSecured() メソッドを呼び出すだけです。

public class SecurityUtils {
    public static boolean isDeviceSecured(Context context){
        KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            return keyguardManager.isDeviceSecure();
        }else{
            return (isPatternEnabled(context) || isPassOrPinEnabled(keyguardManager));
        }
    }

    private static boolean isPatternEnabled(Context context){
        return (Settings.System.getInt(context.getContentResolver(), Settings.System.LOCK_PATTERN_ENABLED, 0) == 1);
    }

    private static boolean isPassOrPinEnabled(KeyguardManager keyguardManager){
        return keyguardManager.isKeyguardSecure();
    }
}
于 2017-03-15T01:08:36.687 に答える