USE_FINGERPRINT在API级别28中已弃用

Jer*_*kub 27 android android-appcompat android-permissions android-9.0-pie

常量USE_FINGERPRINT在API级别28弃用,我们应该用更通用USE_BIOMETRIC已在同一API级别被添加.

我在我的Manifest中交换这些常量,并且在调用时遇到错误FingerprintManagerCompat.from(context).isHardwareDetected().

错误是:

缺少必需的权限 - USE_FINGERPRINT

这是因为28.0.0-rc3支持v4 lib中的@RequiresPermission("android.permission.USE_FINGERPRINT")注释FingerprintManagerCompat.

这是我可以忽略的并继续使用新的权限吗?

mat*_*w11 81

我遇到了同样的问题,恕我直言,简单的答案是忽略弃用,只要你只是想支持你的应用指纹认证.

正如谷歌开发博客中所述,自API 28谷歌提出了新的生物识别API,这简化了生物识别身份验证的整个过程.它们为auth-dialog提供了一个简单的构建器.此外,它们也支持面部和虹膜检测 - 如果您想支持它并且可能值得升级它只是时间问题.

到目前为止我发现的唯一缺点是,如果要检查指纹硬件是否可用,则必须启动身份验证过程以检查此情况并等待错误回调.不推荐使用的指纹API提供了类似isHardwareDetected()hasEnrolledFingerprints()用于此目的的方法.在这种情况下,如果您依赖此信息,则可能需要重新设计应用程序.这些方法被弃用的原因可能是它只支持指纹,因此升级它并不是一个坏主意.

Google还为API 28以下的设备提供了compat 'androidx.biometric:biometric:1.0.0-alpha02'版本,似乎通过导入此依赖关系,您只需切换到USE_BIOMETRIC权限而无需修改应用中的任何其他内容 - 您不会再受到警告的困扰.由于它只处于alpha阶段,我会谨慎使用它.因此,只要您不使用生物识别API中的任何内容,您也可以简单地忽略该问题,并在您想要支持其他生物识别身份验证方法时再次面对它.

  • 这是我们在堆栈溢出时需要更多的质量答案.+100 <3.太糟糕了@JerabekJakub还没有选择你的答案作为官方给你应得的分数. (11认同)
  • 29 日,有“canAuthenticate” https://developer.android.com/reference/android/hardware/biometrics/BiometricManager#canAuthenticate() (2认同)