android 指纹和人脸登录

指纹前提条件

  1. 6.0+

  2.手机里至少要有一个已经录入的指纹


引入权限

  需要指纹权限:<uses-permissionandroid:name="android.permission.USE_FINGERPRINT"/>


引入依赖

人脸识别可以引入虹软的sdk


关键方法

  主要介绍一下FingerprintManager类,提供类三个方法

第一个方法:启动指纹识别

第二个方法:判断手机里面是否有已经有录入的指纹(至少得有一个)

第三个方法:判断手机是否有指纹感应区(硬件支持)

这里需要注意一下,FingerprintManager对象的isHardwareDetected()方法和hasEnrolledFingerprints()方法需要API级别为23及以上,如果你的API级别小于23,那就得加上@TargetApi(23)


创建指纹开启的回调方法

 1.FingerPrintManager.AuthenticationCallback:

 在验证时传入该接口,通过该接口来返回验证指纹的结果

 2.FingerPrintManager.AuthenticationResult:

 当指纹验证正确时,接口里返回的参数

 3.FingerPrintManager.CryptoObject:

 由FingerPrintManager支持的封装加密对象的类


开启指纹识别

我们将指纹识别的CallBack绑定到FingerprintManager中,以获得指纹识别的结果。这就得引入上面图片中FingerprintManager的第一个方法:

public void authenticate(FingerprintManager.CryptoObject crypto,CancellationSignal cancel,int flags,FingerprintManager.AuthenticationCallback callback,Handler handler)

可以看到,这个方法中传递了一个AuthenticationCallback,用于获取指纹识别结果 ,传递了一个CancellationSignal。至此,指纹识别已经开启了。

取消指纹识别

取消指纹识别很简单,authenticate方法中的第二个参数是一个CancellationSignal对象,这个对象就是用来维护取消操作的,这些操作包括取消监听和设定取消回调等。所以,如果要取消,这个参数就不能传Null。

取消指纹识别 mCancellationSignal.cancel();

取消之后会执行的方法是onAuthenticationError()

登录具体流程

1.使用密码登录成功后,去判断设备是否支持指纹/人脸登录,如果支持可以让用户自行选择后续是否需要指纹/人脸登录

2.判断用户指纹/人脸验证是否成功

3.生成加密字符串 可以用sp存储

4.指纹/人脸登录时验证上次加密的字符串

相应的流程图

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容