Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FingerprintManagerCompat isHardwareDetected return false in targetAPI 25

Both method isHardwareDetected() and hasEnrolledFingerprints() always return false. I found that target API 24 works fine, so this is problem just for 25. I would like to use the latest API but it's not possible without working fingerprint.

Activity

    FingerprintManagerCompat from = FingerprintManagerCompat.from(getApplication());
    boolean hardwareDetected = from.isHardwareDetected();
    boolean b = from.hasEnrolledFingerprints();

app.gradle

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    applicationId "com.tkuhn.myapplication"
    minSdkVersion 15
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
}
like image 773
Tomas Kuhn Avatar asked Mar 03 '17 10:03

Tomas Kuhn


1 Answers

Use the best of FingerprintManager & FingerprintManagerCompat.

Use FingerprintManagerCompat's isHardwareDetected for older devices and FingerprintManager's isHardwareDetected for new devices.

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();
        }
    }
like image 188
Hitesh Sahu Avatar answered Oct 13 '22 03:10

Hitesh Sahu