KeyGenParameterSpec.Builder.setUserAuthenticationRequired(true)
表示Android密钥存储区中的密钥仅在以下情况下获得授权:
使用其安全锁定屏幕的子集对用户进行身份验证 凭证(模式/ PIN /密码,指纹)。
如果启用,则在生成密钥时将抛出UserNotAuthenticatedException
,或者在未对用户进行身份验证时访问KeyStore。
是否存在API调用以在与KeyStore交互之前可靠地检查用户是否确实已经过身份验证?...而不是仅仅依赖于在事后捕获异常。
答案 0 :(得分:0)
没有这样的API,您必须捕获异常并处理它以在使用模式/ PIN /密码时询问用户身份验证。
如果定位API 23+并且仅使用指纹,则使用FingerprintManager
:https://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.