如何验证用户是否通过安全锁屏凭据进行了身份验证

时间:2018-03-02 22:20:44

标签: android android-keystore

KeyGenParameterSpec.Builder.setUserAuthenticationRequired(true)表示Android密钥存储区中的密钥仅在以下情况下获得授权:

  

使用其安全锁定屏幕的子集对用户进行身份验证   凭证(模式/ PIN /密码,指纹)。

如果启用,则在生成密钥时将抛出UserNotAuthenticatedException,或者在未对用户进行身份验证时访问KeyStore。

是否存在API调用以在与KeyStore交互之前可靠地检查用户是否确实已经过身份验证?...而不是仅仅依赖于在事后捕获异常。

2 个答案:

答案 0 :(得分:0)

没有这样的API,您必须捕获异常并处理它以在使用模式/ PIN /密码时询问用户身份验证。

如果定位API 23+并且仅使用指纹,则使用FingerprintManagerhttps://developer.android.com/reference/android/hardware/fingerprint/FingerprintManager.html

你有一个如何在那里使用它的例子:

答案 1 :(得分:0)

Android提供了通过KeyguardManager进行检查的功能

以下是一些Kotlin代码可以帮助您:

val kgManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
kgManager.isKeyguardSecure //true if the user set up their Lock Screen securely.