Android应用实现指纹登录
2018-01-12 本文已影响185人
风吹过山
Android指纹是在API23版本之后加入的,以及大多数的Android6.0系统都有硬件支持。
一:指纹Demo:
1、:检测AndroidAPI是否大于等于23
2、:检测硬件是否支持
3、:设备是否录入指纹
4、:开始认证
5、:处理认证结果
二:服务器交互
1、数据上传
2、登录验证
3、加密处理
一:实现指纹demo
实现指纹demo 很简单。理解并调用以下API就可以实现。
相关类:
1.FingerprintManager:主要用来协调管理和访问指纹识别硬件设备
2.FingerprintManager.AuthenticationCallback这个一个callback接口,当指纹认证后系统会回调这个接口通知app认证的结果是什么
3.FingerprintManager.AuthenticationResult这是一个表示认证结果的类,会在回调接口中以参数给出
4.FingerprintManager.CryptoObject这是一个加密的对象类,用来保证认证的安全性
开始扫描用户按下的指纹
调用authenticate()函数;
@RequiresPermission(USE_FINGERPRINT) //限定需要权限
public void authenticate(
@Nullable CryptoObject crypto, //加密类对象;
@Nullable CancellationSignal cancel, //用来取消当前扫描操作(30s才超时);
int flags, //标识位,暂时设置为0即可;
@NonNull AuthenticationCallback callback, //认证结果回调;
@Nullable Handler handler) //使用handler的Looper处理指纹识别硬件的信息;为null,则使用app的main Looper处理;
大多数Demo中使用指纹都是请求认证指纹,获得结果,根据结果做下一步的工作。
不多说直接上代码吧!
MainActivity extends FingerprintManager.AuthenticationCallback {
}
画重点:
CrytoObject对象是基于Java加密API的一个包装类,
并且被FingerprintManager用来保证认证结果的完整性。通常来讲,用来加密指纹扫描结果的机制就是一个Javax.Crypto.Cipher对象。Cipher对象本身会使用由应用调用Android keystore(Android提供的一个用来保存 Key-Value的文件)的API产生一个key来实现上面说道的保护功能。
Android 指纹解密.png
、、、
Android指纹加密.png