常量USE_FINGERPRINT
为deprecated in API level 28,我们应该使用在相同API级别中添加的更多通用USE_BIOMETRIC
。
我在 list 中交换了这些常量,并且在调用FingerprintManagerCompat.from(context).isHardwareDetected()
时遇到错误。
错误是:
发生这种情况是因为28.0.0-rc3支持v4库中@RequiresPermission("android.permission.USE_FINGERPRINT")
中的FingerprintManagerCompat
批注。
这是我可以忽略并继续使用新权限的事情吗?
最佳答案
我也遇到过同样的问题,恕我直言,简短的答案是忽略弃用,只要您仅想要在您的应用程序中支持指纹认证。
如google dev blog中所述,自API 28以来,google推出了新的biometrics API,它简化了生物识别身份验证的整个过程。它们为auth-dialog提供了一个简单的构建器。此外,它们也支持脸部和虹膜检测-恕我直言,如果要支持它只是时间问题,可能值得升级。
到目前为止,我发现的唯一缺点是,如果您要检查是否指纹硬件可用,您必须启动身份验证过程才能将其 checkout 并等待error callback。不建议使用的指纹API为此提供了 isHardwareDetected()
或 hasEnrolledFingerprints()
之类的方法。在这种情况下,如果您依赖此信息,则可能必须重新设计应用程序。否决这些方法的原因可能是它仅支持指纹,因此升级它不是一个坏主意。
Google还为API 28以下的设备提供了compat 'androidx.biometric:biometric:1.0.0-alpha02'
版本,似乎通过导入此依赖项,您可以简单地切换到USE_BIOMETRIC
权限,而无需修改应用程序中的任何其他内容-您将再也不会受到警告的困扰。由于它仅处于alpha阶段,因此我会谨慎使用。因此,只要您不使用生物特征识别API的任何内容,就可以简单地忽略该问题,并在想要支持其他生物特征认证方法时再次面对该问题。
编辑:现在,发布了compat库的beta版本'androidx.biometric:biometric:1.0.0-beta01'
。有关此的更多信息,check here。
现在,稳定版的Compat库于2019年12月18日发布,``androidx.biometric:biometric:1.0.1''。有关此Click here的更多信息。