2017-08-16 110 views
0

我无法找到一个API,让我进军密码/ pin /图形用户已经建立了我的应用程序认证的Android设备上。使用系统密码进行身份验证

有一个指纹识别API,我可以用它来问Android的用户进行身份验证,但没有密码API进军密码/ pin /模式,代替指纹。

有没有办法问Android的基于密码/ pin /图形用户已经建立了我的应用程序进行身份验证?

回答

1

如果你问“我怎么能要求系统重新验证用户?”,在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

如果你问“我如何才能获得用户的密码/ pin /模式为我所用?”,这是不可能的。

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

// 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 
     } 
    } 
} 
+0

谢谢,这似乎是在正确的轨道上。 真的,我只是在寻找合格或失败。我只想让Android知道用户是否成功确认了凭据,或者他们是否失败。 这是否有一个回调,让我知道,如果他们通过或失败。现在看,但我没有看到回调看到结果。 –

+0

看起来这个帖子回答了这个问题。现在检查出来。 https://stackoverflow.com/questions/39202487/can-app-use-android-security-mechanism-pin-code-pattern-password –

+0

没错。这样可行。我会用回调更新您的答案,并将其标记为正确答案。感谢您的帮助!! –