如何在android中检查指纹认证的设备兼容性

如何在android中检查指纹认证的设备兼容性,android,authentication,fingerprint,Android,Authentication,Fingerprint,我正在使用android 6.0 api进行指纹认证。 我的要求是,如果当前设备支持指纹认证,那么我将通过指纹认证,否则将使用正常方式登录应用程序 所以,任何人都可以告诉我,如何在android中检查指纹认证的设备兼容性 提前感谢。您必须在FingerprintManager类中使用方法ishardwaredeteced 确定指纹硬件是否存在并正常工作。退换商品 如果硬件存在且功能正常,则为true,否则为false 别忘了在AndroidManifest中添加访问指纹函数的权限。 自API 2

我正在使用android 6.0 api进行指纹认证。 我的要求是,如果当前设备支持指纹认证,那么我将通过指纹认证,否则将使用正常方式登录应用程序

所以,任何人都可以告诉我,如何在android中检查指纹认证的设备兼容性


提前感谢。

您必须在
FingerprintManager
类中使用方法
ishardwaredeteced

确定指纹硬件是否存在并正常工作。退换商品 如果硬件存在且功能正常,则为true,否则为false

别忘了在AndroidManifest中添加访问指纹函数的权限。 自API 28起:

<uses-permission android:name=" android.permission.USE_BIOMETRIC" />
并使用
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 
}

这只是劳伦蒂回答的后续问题。 您需要权限才能访问指纹扫描仪。为此,您需要将此添加到您的清单中

API 27及之前

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

API 28及更高版本

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

此方法适用于所有Android版本,并检查权限

 private boolean isSensorAvialable() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                return ActivityCompat.checkSelfPermission(AppContext, Manifest.permission.USE_FINGERPRINT) == PackageManager.PERMISSION_GRANTED &&
                        AppContext.getSystemService(FingerprintManager.class).isHardwareDetected();
            } else {
                return FingerprintManagerCompat.from(AppContext).isHardwareDetected();
            }
        }

执行提示无需任何权限:

    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
}
    [BiometricPrompt][1]

如果硬件找不到或与应用程序不兼容,是否有办法防止应用程序在playstore上列出?这是一个新问题,请添加一个问题,我将回答这个问题。awesome post@LaurentY不推荐使用。立即使用。在API 28中,不推荐使用指纹管理器和指纹管理器Compat。28中是否有替代类具有isHardwareDetected和HasEnrolled指纹方法或等效方法?
不推荐使用。使用
而不是编辑它。谢谢
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
 private boolean isSensorAvialable() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                return ActivityCompat.checkSelfPermission(AppContext, Manifest.permission.USE_FINGERPRINT) == PackageManager.PERMISSION_GRANTED &&
                        AppContext.getSystemService(FingerprintManager.class).isHardwareDetected();
            } else {
                return FingerprintManagerCompat.from(AppContext).isHardwareDetected();
            }
        }
    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
}
    [BiometricPrompt][1]