1

在此处输入图像描述

我想知道,运行我的应用程序的设备是否支持指纹。

if(!fingerprintManager!!.isHardwareDetected)
{
 Toast.makeText(context,"Your device doesn't support fingerprint authentication", Toast.LENGTH_SHORT).show()
} 

始终为任何设备返回 true。

4

2 回答 2

0

您应该从 using 迁移FingerprintManagerBiometricPrompt. 有一个博客显示了如何做到这一点

FingerprintManagerAPI 不同,您可以通过单个方法调用检查设备是否支持生物特征认证: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()
   }
}
于 2019-11-27T18:23:36.327 回答
0

确保您正在使用

<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 }
于 2019-08-28T05:15:29.093 回答