Android Ajout du scanner d'empreintes digitales dans une application Android


Exemple

Android prend en charge l'API d'empreinte digitale d'Android 6.0 (Marshmallow) SDK 23

Pour utiliser cette fonctionnalité dans votre application, ajoutez d'abord l'autorisation USE_FINGERPRINT dans votre manifeste.

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

Voici la procédure à suivre

Vous devez d'abord créer une clé symétrique dans le magasin de clés Android à l'aide de KeyGenerator, qui ne peut être utilisée qu'après que l'utilisateur s'est authentifié avec l'empreinte digitale et passé un KeyGenParameterSpec.

KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_EC, "AndroidKeyStore");
keyPairGenerator.initialize(
        new KeyGenParameterSpec.Builder(KEY_NAME,
                KeyProperties.PURPOSE_SIGN)
                .setDigests(KeyProperties.DIGEST_SHA256)
                .setAlgorithmParameterSpec(new ECGenParameterSpec("secp256r1"))
                .setUserAuthenticationRequired(true)
                .build());
keyPairGenerator.generateKeyPair();

En définissant KeyGenParameterSpec.Builder.setUserAuthenticationRequired sur true, vous pouvez autoriser l'utilisation de la clé uniquement une fois que l'utilisateur l'a authentifiée, y compris lorsqu'elle est authentifiée avec l'empreinte digitale de l'utilisateur.

KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
PublicKey publicKey =
        keyStore.getCertificate(MainActivity.KEY_NAME).getPublicKey();

KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
PrivateKey key = (PrivateKey) keyStore.getKey(KEY_NAME, null);

Commencez ensuite à écouter une empreinte digitale sur le capteur d'empreinte en appelant FingerprintManager.authenticate avec un chiffrement initialisé avec la clé symétrique créée. Vous pouvez également utiliser le mot de passe vérifié côté serveur en tant qu'authentificateur.

Créez et initialisez le FingerprintManger partir de fingerprintManger.class

getContext().getSystemService(FingerprintManager.class)

Pour authentifier, utilisez FingerprintManger api et créez une sous-classe en utilisant

FingerprintManager.AuthenticationCallback et remplacer les méthodes

onAuthenticationError
onAuthenticationHelp
onAuthenticationSucceeded
onAuthenticationFailed

Commencer

Pour commencer à écouter la méthode d'authentification de l'appel d'événement fingerPrint avec crypto

fingerprintManager
              .authenticate(cryptoObject, mCancellationSignal, 0 , this, null);

Annuler

arrêter d'écouter l'appel du scanner

android.os.CancellationSignal;

Une fois que l'empreinte (ou le mot de passe) est vérifiée, le rappel FingerprintManager.AuthenticationCallback # onAuthenticationSucceeded () est appelé.

@Override

public void onAuthenticationSucceeded(AuthenticationResult result) {
               
            }