I am working with finger print authentication using android 6.0 api. My requirement is, if current device is supports finger print authentication, then I will go through fi
You have to use method isHardwareDetected
on FingerprintManager
class.
Determine if fingerprint hardware is present and functional. Returns true if hardware is present and functional, false otherwise.
// 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
}
}
Don't forget to add permission to access fingerprint functions in AndroidManifest. Since API 28:
Before API28:
With Support Library
If you don't want to check Build.VERSION, it's also possible to check on device lower than Android 6.0 with Support Library
Add dependency:
compile "com.android.support:support-v4:23.0.0"
And use FingerprintManagerCompat
class as this:
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
}