你必须使用方法isHardwareDetected
on FingerprintManager
class.
确定指纹硬件是否存在且功能正常。退货
如果硬件存在且正常工作,则为 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.xml 中添加访问指纹功能的权限。
自 API 28 起:
<uses-permission android:name=" android.permission.USE_BIOMETRIC" />
API28之前:
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
带支持库
如果您不想检查Build.VERSION,也可以在低于Android 6.0的设备上使用Support Library进行检查
添加依赖:
compile "com.android.support:support-v4:23.0.0"
And use 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
}