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

D. *_*all 5 authentication android

我找不到能够让我利用用户在Android设备上设置的用于在我的应用中进行身份验证的密码/密码/模式的API。

我可以使用一个指纹身份验证API来要求Android对用户进行身份验证,但是没有密码API可以使用密码/密码/模式代替指纹。

有没有一种方法可以要求Android根据用户已经设置的密码/密码/模式在我的应用中进行身份验证?

Com*_*are 10

如果您在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);
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以在andOTP项目中看到正在使用的代码(稍作修改)。

如果您问“我如何获得自己使用的用户密码/密码/图案?”,那是不可能的。

使用它来查看用户是否成功通过身份验证:

// 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  
        }  
    }  
}
Run Code Online (Sandbox Code Playgroud)