检测设备是否具有指纹硬件的代码

时间:2018-08-01 12:07:35

标签: android fingerprint detect

我正在尝试在我的应用程序上添加一小部分,以检测android设备是否具有内置的指纹硬件。有两个页面分别讨论了该主题:

Marshmallow Fingerprint Scanner Hardware Presence

Android check for fingerprint scanner is available

但是他们都没有给我一个可行的解决方案,我正在寻找可以在14岁以下的API上运行的东西。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

您必须在isHardwareDetected类上使用方法FingerprintManager

确定指纹硬件是否存在并且可以正常工作。如果存在硬件且功能正常,则返回true,否则返回false。

  // Check if we're running on Android 6.0 (M) or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    //Fingerprint API only available on from Android 6.0 (M)
    FingerprintManager fingerprintManager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
    if (!fingerprintManager.isHardwareDetected()) { 
        // Device doesn't support fingerprint authentication     
    } else if (!fingerprintManager.hasEnrolledFingerprints()) { 
        // User hasn't enrolled any fingerprints to authenticate with 
    } else { 
        // Everything is ready for fingerprint authentication 
    }
}

不要忘记添加访问指纹功能的权限     AndroidManifest:

<uses-permission android:name="android.permission.USE_FINGERPRINT" />

带有支持库

如果您不想检查Build.VERSION,也可以使用支持库在低于Android 6.0的设备上进行检查

添加依赖项:

compile "com.android.support:support-v4:23.0.0"

并使用FingerprintManagerCompat类,如下所示:

FingerprintManagerCompat fingerprintManagerCompat = FingerprintManagerCompat.from(context);

if (!fingerprintManagerCompat.isHardwareDetected()) { 
    // Device doesn't support fingerprint authentication     
} else if (!fingerprintManagerCompat.hasEnrolledFingerprints()) { 
    // User hasn't enrolled any fingerprints to authenticate with 
} else { 
    // Everything is ready for fingerprint authentication 
}

答案 1 :(得分:1)

在清单文件中添加指纹权限,并添加此代码以检测指纹硬件,请记住,只有从电话设置中启用了指纹识别后,此功能才会检测到。

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
    {
        //Get an instance of KeyguardManager and Fingerpr`enter code here`intManager//
        KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
        FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);}
        //Check whether the device has a fingerprint sensor//
        if (!fingerprintManager.isHardwareDetected())
      { //any thing}

答案 2 :(得分:0)

我相信在旧版本的Android中没有可使用的官方指纹API。您可以检查API版本是否高于23,如果不是,则设备没有可以使用的指纹传感器。