How to check device compatibility for finger print authentication in android

This method Works for all Android versions and also check for permission

 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();
            }
        }

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:

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

Before API28:

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

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 
}

Just a follow up to LaurentY's answer. You need a permission to access the finger print scanner. And for that you need to add this to your Manifest.

API 27 and before

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

API 28 and later

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