我想知道,运行我的应用程序的设备是否支持指纹。
但
if(!fingerprintManager!!.isHardwareDetected)
{
Toast.makeText(context,"Your device doesn't support fingerprint authentication", Toast.LENGTH_SHORT).show()
}
始终为任何设备返回 true。
我想知道,运行我的应用程序的设备是否支持指纹。
但
if(!fingerprintManager!!.isHardwareDetected)
{
Toast.makeText(context,"Your device doesn't support fingerprint authentication", Toast.LENGTH_SHORT).show()
}
始终为任何设备返回 true。
您应该从 using 迁移FingerprintManager
到BiometricPrompt
. 有一个博客显示了如何做到这一点。
与FingerprintManager
API 不同,您可以通过单个方法调用检查设备是否支持生物特征认证:BiometricManager.from(context).canAuthenticate()
. 这个单一的方法调用检查设备上是否有可用的生物识别硬件、用户是否注册了模板以及用户是否启用了生物识别身份验证。如果这三个都不正确,则无法显示生物特征提示。这是一种非常方便的方法,可以为您处理所有复杂问题。
// Callback for the "authenticate" button in your app's UI.
override fun onClick(view: View) {
val promptInfo = createPromptInfo()
if (BiometricManager.from(context)
.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS) {
biometricPrompt.authenticate(promptInfo, cryptoObject)
} else {
loginWithPassword()
}
}
确保您正在使用
<uses-permission android:name=" android.permission.USE_BIOMETRIC" />
还
if(ActivityCompat.checkSelfPermission(AppContext, Manifest.permission.USE_BIOMETRIC) == PackageManager.PERMISSION_GRANTED)
{ if (!fingerprintManager!!.isHardwareDetected)
{ //permission granted but no hardware present
} else {
//permission granted and hardware present
} else {
// Permission not granted }