Looking at the FingerprintManagerCompat javadoc:
A class that coordinates access to fingerprint equipment.
On platforms up to M, this class behaves in a way that fingerprint equipment would not be available.
Looking at the source code:
final int version = Build.VERSION.SDK_INT; if (version >= 23) {
If your device is below the VERSION 23 API, LegacyFingerprintManagerCompatImpl is used and this is only STUB. For instance:
@Override public boolean hasEnrolledFingerprints(Context context) { return false; } @Override public boolean isHardwareDetected(Context context) { return false; }
You cannot use such a function on an earlier device. These APIs (some of android.security.keystore) are only available on Android M
source share