繁体   English   中英

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

[英]Code to detect if the device has a Fingerprint Hardware

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

棉花糖指纹扫描仪硬件的存在

可以使用Android检查指纹扫描仪

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

任何帮助,将不胜感激!

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

确定是否存在指纹硬件并且功能正常。 如果存在硬件且功能正常,则返回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 
}

在清单文件中添加指纹许可并添加此代码以检测指纹硬件,请记住,仅当从手机设置中启用指纹时,此功能才会检测。

  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} 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM