使用系统密码进行身份验证

时间:2017-08-16 16:32:20

标签: android authentication

我找不到一个API,允许我点击用户在Android设备上设置的密码/图钉/模式,以便在我的应用中进行身份验证。

我可以使用指纹验证API来要求Android对用户进行身份验证,但没有密码API可以使用密码/引脚/模式而不是指纹。

有没有办法让Android根据用户已经设置的密码/图钉/模式在我的应用中进行身份验证?

1 个答案:

答案 0 :(得分:7)

如果您问“如何让系统重新验证用户身份?”,则在Android 5.0及更高版本上,此类内容应该有效:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
    KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);

    if (km.isKeyguardSecure()) {
        Intent authIntent = km.createConfirmDeviceCredentialIntent(getString(R.string.dialog_title_auth), getString(R.string.dialog_msg_auth));
        startActivityForResult(authIntent, INTENT_AUTHENTICATE);
    }
}

您可以在the andOTP project中看到正在使用的代码(略有修改)。

如果您问“如何获取用户自己的密码/图钉/图案?”,则无法做到这一点。

使用此选项可查看用户是否已成功通过身份验证:

// call back when password is correct  
@Override  
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (requestCode == INTENT_AUTHENTICATE) {  
        if (resultCode == RESULT_OK) {  
            //do something you want when pass the security  
        }  
    }  
}