RxTips – Empreinte digitale
Introduit avec Android Marshmallow, l’authentification via l’empreinte digitale accélère la connexion des utilisateurs à nos applications.
Son implémentation sans Rx est assez fastidieuse, il nous faut
- demander la permission Manifest USE_FINGERPRINT
- récupérer le FingerprintManager
- demander la permission Runtime USE_FINGERPRINT
- vérifier si l’appareil possède un dispositif de fingerprint
- vérifier si l’appareil possède des emprunte en mémoire
- lancer une authentification sur le FingerprintManager
Tout cela en une multitude d’allers retours entre pleins d’objets et de méthodes donc 😀
Avec RxFingerprint, c’est beaucoup plus simple
Ajoutez RxFingerprint et RxPermissions à votre fichier build.gradle
compile 'com.mtramin:rxfingerprint:2.1.0' compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'
Ajoutez la permission USE_FINGERPRINT à votre AndroidManifest
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
Coder !
//on demande la permission runtime new RxPermissions(this) .request(Manifest.permission.USE_FINGERPRINT) //on enchaine vers l'authentification fingerprint si la permission est accordée .flatMap(permitted -> RxFingerprint.authenticate(this)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(fingerprintAuthenticationResult -> { switch (fingerprintAuthenticationResult.getResult()) { case FAILED: //empreinte non reconnue break; case AUTHENTICATED: //authentifié !!! break; } }, throwable -> //permission non accordée //ou non authentifié via fingerprint );
Je vous invite à regarder le github de RxPermissions pour voir comment sécuriser des données via l’empreinte digitale, c’est assez simple à mettre en place, et surtout, sécurisé !!!
Un peu perdu en RxJava ? n’hésitez pas à aller faire un tour sur notre un article d’introduction sur RxJava , ainsi que celui détaillant l’utilisation des lambdas.
Petit rappel on vient de lancer une nouvelle rubrique sur le site, où vous pouvez découvrir des livres et des Goodies Android, allez-y faire un tour 😀