gpt4 book ai didi

android - BiometricPrompt 执行器和/或回调为空

转载 作者:行者123 更新时间:2023-11-29 00:52:13 28 4
gpt4 key购买 nike

我正在使用 androidx.biometric:biometric:1.0.0-beta02 中的 BiometricPrompt 进行身份验证。但是我遇到了一个非常奇怪的问题。

我第一次调用 biometricsPromt.authenticate() 一切正常,库根据设置的安全方法(模式、指纹、密码等)向我显示屏幕,然后调用回调一切都很好。

问题是当我第二次调用 biometricsPromt.authenticate() 时出现错误:

E/DeviceCredentialHandler: onCreate: Executor and/or callback was null!

我当然要传递执行程序和回调 -> 它们不为空

有没有人遇到同样的问题或知道可能是什么问题?

这就是我创建 BiometricPromt 的方式

`

companion object {
private val executor: Executor by lazy {
Executors.newSingleThreadExecutor()
}

fun showBiometricsPrompt(
activity: FragmentActivity,
callback: BiometricPrompt.AuthenticationCallback
): BiometricPrompt {
val promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle(activity.getString(R.string.title_authentication))
.setDescription(activity.getString(R.string.msg_authenticate_first))
.setDeviceCredentialAllowed(true)
.build()

val biometricPrompt =
BiometricPrompt(
activity,
executor, callback
)
biometricPrompt.authenticate(promptInfo)
return biometricPrompt
}

`

这是我的调用方式:

`

BiometricsHelper.showBiometricsPrompt(
this,
object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)

showToastMsg(errString.toString())
}

override fun onAuthenticationFailed() {
super.onAuthenticationFailed()
}

override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)

}
})

`

最佳答案

这是解决此问题的方法,但不是完整的修复方法。

您需要在完成身份验证后执行的所有操作后调用recreate()

这将重新启动 Activity 并允许再次显示生物识别提示。

关于android - BiometricPrompt 执行器和/或回调为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58286606/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com