我们目前正在尝试使用生物识别技术对数据进行签名,我们使用androidx.biometric库来实现。
问题是,如果没有安装指纹,但是注册了一个人脸,我们就不能生成任何密钥。
只使用指纹,或者使用指纹和面部的组合,一切都很完美。
在只注册了face的情况下,在密钥生成过程中会出现以下异常:
原因: java.security.InvalidAlgorithmParameterException: java.lang.IllegalStateException:必须至少注册一个生物识别才能创建每次使用都需要用户身份验证的密钥
在开始密钥生成之前,我们按如下方式测试是否存在生物特征:
boolean isAvailable = biometricManager.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS;
测试设备作为三星Galaxy S10与安卓10。
感谢您的帮助和良好的问候
发布于 2020-11-29 20:58:23
谷歌已经更新了androidx生物识别sdk。如果要在application.Authentication中使用强类型身份验证,可以检查强类型。如果您的设备适合这样做,您可以创建cryptoObject。
https://developer.android.com/jetpack/androidx/releases/biometric#1.1.0-alpha02
val canAuthenticate = BiometricManager.from (context)
.canAuthenticate (BiometricManager.Authenticators.BIOMETRIC_STRONG)在此检查之后,您可以继续密钥生成。
https://stackoverflow.com/questions/61698257
复制相似问题