USE_FINGERPRINT 在 API 级别 28 中已弃用
USE_FINGERPRINT is deprecated in API level 28
常量 USE_FINGERPRINT
是 deprecated in API level 28,我们应该使用更通用的 USE_BIOMETRIC
,它已添加到相同的 API 级别。
我在清单中交换了这些常量,但在调用 FingerprintManagerCompat.from(context).isHardwareDetected()
时出现错误。
错误是:
Missing required permission - USE_FINGERPRINT
这是因为 28.0.0-rc3 支持 v4 库中 FingerprintManagerCompat
中的 @RequiresPermission("android.permission.USE_FINGERPRINT")
注释。
我可以忽略并继续使用新权限吗?
我遇到过同样的问题,恕我直言,只要您仅想在您的应用程序中支持指纹身份验证,简短的回答就是忽略弃用。
如google dev blog, since API 28 google comes up with the new biometrics API所述,这简化了生物识别认证的整个过程。他们为 auth-dialog 提供了一个简单的构建器。此外,它们也支持面部和虹膜检测 - 恕我直言,如果你想支持它只是时间问题,可能值得升级它。
到目前为止我发现的唯一缺点是如果你想检查是否指纹硬件可用,您必须启动身份验证过程来检查它并为此等待 error callback. The deprecated fingerprint API instead provides methods like isHardwareDetected()
or hasEnrolledFingerprints()
。在这种情况下,如果您依赖此信息,您可能不得不重新设计您的应用程序。这些方法被弃用的原因可能是它只支持指纹,因此升级它是个不错的主意。
Google也为API28以下的设备提供了compat'androidx.biometric:biometric:1.0.0-alpha02'
版本,看来通过引入这个依赖,您可以简单地切换到 USE_BIOMETRIC
权限,而无需修改应用程序中的任何其他内容 - 您不会再被警告所困扰。由于它仅处于 alpha 阶段,我会小心使用它。因此,只要您不使用生物识别技术中的任何东西API,您也可以忽略该问题,并在您想要支持其他生物识别身份验证方法时再次面对它。
编辑:现在,compat 库的测试版发布了,'androidx.biometric:biometric:1.0.0-beta01'
。有关这方面的更多信息,check here.
现在,兼容库的稳定版本已于 2019 年 12 月 18 日发布,'androidx.biometric:biometric:1.0.1'。有关此 Click here.
的更多信息
biometrics API 提供用于错误处理的 BiometricConstants
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
//The device does not have a biometric sensor.
if (errorCode == BiometricPrompt.ERROR_HW_NOT_PRESENT){
//Do something
}
}
常量 USE_FINGERPRINT
是 deprecated in API level 28,我们应该使用更通用的 USE_BIOMETRIC
,它已添加到相同的 API 级别。
我在清单中交换了这些常量,但在调用 FingerprintManagerCompat.from(context).isHardwareDetected()
时出现错误。
错误是:
Missing required permission - USE_FINGERPRINT
这是因为 28.0.0-rc3 支持 v4 库中 FingerprintManagerCompat
中的 @RequiresPermission("android.permission.USE_FINGERPRINT")
注释。
我可以忽略并继续使用新权限吗?
我遇到过同样的问题,恕我直言,只要您仅想在您的应用程序中支持指纹身份验证,简短的回答就是忽略弃用。
如google dev blog, since API 28 google comes up with the new biometrics API所述,这简化了生物识别认证的整个过程。他们为 auth-dialog 提供了一个简单的构建器。此外,它们也支持面部和虹膜检测 - 恕我直言,如果你想支持它只是时间问题,可能值得升级它。
到目前为止我发现的唯一缺点是如果你想检查是否指纹硬件可用,您必须启动身份验证过程来检查它并为此等待 error callback. The deprecated fingerprint API instead provides methods like isHardwareDetected()
or hasEnrolledFingerprints()
。在这种情况下,如果您依赖此信息,您可能不得不重新设计您的应用程序。这些方法被弃用的原因可能是它只支持指纹,因此升级它是个不错的主意。
Google也为API28以下的设备提供了compat'androidx.biometric:biometric:1.0.0-alpha02'
版本,看来通过引入这个依赖,您可以简单地切换到 USE_BIOMETRIC
权限,而无需修改应用程序中的任何其他内容 - 您不会再被警告所困扰。由于它仅处于 alpha 阶段,我会小心使用它。因此,只要您不使用生物识别技术中的任何东西API,您也可以忽略该问题,并在您想要支持其他生物识别身份验证方法时再次面对它。
编辑:现在,compat 库的测试版发布了,'androidx.biometric:biometric:1.0.0-beta01'
。有关这方面的更多信息,check here.
现在,兼容库的稳定版本已于 2019 年 12 月 18 日发布,'androidx.biometric:biometric:1.0.1'。有关此 Click here.
的更多信息biometrics API 提供用于错误处理的 BiometricConstants
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
//The device does not have a biometric sensor.
if (errorCode == BiometricPrompt.ERROR_HW_NOT_PRESENT){
//Do something
}
}