是否可以通过程序测试手机的指纹传感器是否正常工作?我希望能够自动执行测试,而无需注册我的指纹,然后尝试登录它以查看传感器是否正常工作。
SDK 23 +
fun isHardwareSupported(context: Context): Boolean {
val fingerprintManager = FingerprintManagerCompat.from(context)
return fingerprintManager.isHardwareDetected
}
SDK 28+
fun isHardwareSupported(context: Context): Boolean {
val pm = context.packageManager
return pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)
}
另一种替代方法是使用BiometricManager
androidx库
该方法可用于确定是否存在生物识别硬件以及是否已注册用户。
fun isHardwareSupported(context: Context): Boolean {
return BiometricManager.from(context).canAuthenticate() != BIOMETRIC_ERROR_HW_UNAVAILABLE)
}
如果用户没有注册,则返回BIOMETRIC_ERROR_NONE_ENROLLED,如果当前不支持/启用,则返回BIOMETRIC_ERROR_HW_UNAVAILABLE。如果当前可以使用生物特征(已注册并可用),则返回BIOMETRIC_SUCCESS。值是BIOMETRIC_SUCCESS,BIOMETRIC_ERROR_HW_UNAVAILABLE,BIOMETRIC_ERROR_NONE_ENROLLED或BIOMETRIC_ERROR_NO_HARDWARE