【问题标题】:Programmatically test if device fingerprint works correctly以编程方式测试设备指纹是否正常工作
【发布时间】:2020-03-01 20:48:02
【问题描述】:

有没有办法以编程方式测试我手机的指纹传感器是否正常工作? 我希望能够自动执行测试,而无需注册我的指纹,然后尝试使用它登录以查看传感器是否工作。

【问题讨论】:

  • 你的最低 sdk 是多少?
  • 最小 sdk 为 22
  • 太远了,我能给你的最大值是 23 ;)
  • 没有isFingerprintSensorWorkingCorrectly。您只需要尝试进行身份验证。
  • 如何以编程方式添加指纹?然后尝试以某种方式登录...我想尽可能自动地进行此测试。

标签: android fingerprint android-fingerprint-api


【解决方案1】:

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)
}

【讨论】:

  • 谢谢,但我需要测试传感器,如果它工作正常。这是我的问题。
【解决方案2】:

另一种选择是使用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

【讨论】:

  • 谢谢,但我需要测试传感器,如果它工作正常。这是我的问题。
猜你喜欢
  • 2014-06-18
  • 2014-02-01
  • 1970-01-01
  • 2016-11-14
  • 2019-04-04
  • 1970-01-01
  • 2012-12-31
  • 1970-01-01
  • 2011-08-12
相关资源
最近更新 更多