我目前正在为一个项目开发生物识别库,但似乎无法使面部识别工作。
BiometricManager 在我尝试过的所有设备中都可以正确识别指纹,但是它没有检测到我的华为 P30 ELE-L29(EMUI 版本 10.0.0 - Android 版本 10)的任何注册面部生物识别信息,并且当我调用 BiometricManager# 时返回 BIOMETRIC_ERROR_NONE_ENROLLED#可以验证()。这是我唯一可用的 API 版本 29 的设备,因为 Android Studio 模拟器没有实现面部识别,并且其他模拟器(Bluestacks、Nox 等)无法配置为在我的 MacBook 上的 Android 10 上运行。
我希望能对这个问题有所了解,因为面部识别对于原生 Android 来说是新的,而且我找不到任何类似的问题。我不确定这是否是这款特定手机的问题,或者我的代码是否有错误。
我的 minSdkVersion 是 23 (Android 6.0 Marshmallow),我的 targetSdkVersion 是 29 (Android 10 Q)。
我的(部分)实现:
fun isBiometricsSupported(@NonNull context: Context): Boolean {
val biometricManager = BiometricManager.from(context)
var isBiometricsSupported = false
when (biometricManager.canAuthenticate()) {
BiometricManager.BIOMETRIC_SUCCESS -> {
isBiometricsSupported = true
}
BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE -> {
Log.println(Log.INFO, "a", "Logger: BIOMETRIC_ERROR_NO_HARDWARE")
}
BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED -> {
Log.println(Log.INFO, …Run Code Online (Sandbox Code Playgroud)