【发布时间】:2021-01-21 23:24:21
【问题描述】:
我需要通过 touchid 和 faceid 实现生物识别登录,这允许用户选择他/她想要启用哪一个,触摸或人脸识别。
我使用最新的 android 库 (androidx.biometric:biometric) 来实现这一点,但在 promt 上分离触摸和面部时遇到了麻烦。
这是我的代码:
private fun displayBiometricPrompt(
activity: FragmentActivity,
biometricCallback: BiometricCallback
) {
context.let {
val biometricPrompt = BiometricPrompt(
activity,
it?.mainExecutor!!,
object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)
biometricCallback.onAuthenticationSuccessful()
}
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
biometricCallback.onAuthenticationError(errorCode, errString)
}
override fun onAuthenticationFailed() {
super.onAuthenticationFailed()
biometricCallback.onAuthenticationFailed()
}
}
)
biometricPrompt.authenticate(
BiometricPrompt.PromptInfo.Builder()
.setTitle(title)
.setSubtitle(subtitle)
.setDescription(description)
.setConfirmationRequired(false)
.setNegativeButtonText(negativeButtonText)
.build()
)
}
}
【问题讨论】:
标签: android kotlin biometrics touch-id face-id