it-swarm.com.de

So überprüfen Sie die Gerätekompatibilität für die Fingerabdruckauthentifizierung in Android

Ich arbeite mit der Fingerabdruckauthentifizierung unter Verwendung von Android 6.0 api. Meine Anforderung ist, wenn das aktuelle Gerät die Fingerprint-Authentifizierung unterstützt, gehe ich die Fingerprint-Authentifizierung durch, ansonsten werde ich mich auf normale Weise bei der Anwendung anmelden.

Jeder kann mir sagen, wie man die Gerätekompatibilität für die Fingerabdruckauthentifizierung in Android überprüfen kann.

Danke im Voraus.

31
Lokesh

Sie müssen die Methode isHardwareDetected für die Klasse FingerprintManager verwenden.

Stellen Sie fest, ob Fingerabdruckhardware vorhanden und funktionsfähig ist. Kehrt zurück true, wenn Hardware vorhanden und funktionsfähig ist, andernfalls 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 
    }
}

Vergessen Sie nicht, die Berechtigung für den Zugriff auf Fingerabdruckfunktionen in AndroidManifest ..__ hinzuzufügen. Seit API 28:

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

Vor API28:

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

Mit Support Library

Wenn Sie Build.VERSION nicht aktivieren möchten, können Sie auch auf Geräten mit einer niedrigeren als Android 6.0 mit Support Library prüfen

Abhängigkeit hinzufügen:

compile "com.Android.support:support-v4:23.0.0"

Und benutze FingerprintManagerCompat als Klasse:

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 
}
64
LaurentY

Nur eine Antwort auf die Antwort von LaurentY. Sie benötigen eine Berechtigung, um auf den Fingerabdruckscanner zuzugreifen. Und dazu müssen Sie dies zu Ihrem Manifest hinzufügen. 

API 27 und davor

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

API 28 und höher

<uses-permission Android:name="Android.permission.USE_BIOMETRIC" />
5
SanVed

Diese Methode funktioniert für alle Android-Versionen und prüft auch die Erlaubnis 

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

für die Implementierung von BiometricPrompt ist keine Berechtigung erforderlich:

    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
}
    [BiometricPrompt][1]
0
chock2099

Überprüfen Sie dieses Beispielbeispiel von Google 

0
iosMentalist