现在主流的指纹识别其实使用的都是接入的一些收费的SDK,通过原生开发之前自学的时候简单接触过一次 最近有个需求需要用原生的API实现指纹识别的功能 记一下遇到的坑
首先指纹识别功能开发的教学文档比比皆是 可以随便搜索到讲述的也都很相信 我就没有必要赘述了 直接进入正题
1、首先指纹开发只支持android 6.0 即SDK 23以上的机器 这其中也有很多厂商的部分设备在调用的API时返回不正常 需要做好心理准备和具体应对措施
2、系统指纹库如果发生变化API也是没有提供接口给我们调用的去监控的 如果为了安全这一快肯定还是要处理的 不然获取了用户的锁屏密码就可以直接登录用户的APP了 不用账密
这里可以看下这个实现案例 指纹库变更监控案例
3、指纹监测错误次数过多也会设备被锁的情况 这个时候需要调用密码解锁来解除锁定状态
这个项目里有解决案例
4、为了安全 加密这一快也需要一定功夫去调研的
5、新的API接口即BiometricPromptApi28 不支持太多的自定义UI成分 这样会导致UI不统一以及可定制范围很小 而且在部分手机上面出现的位置也很尴尬 这里就有个案例:
6、Dialog的show要放到调用指纹识别之前 否则会出现多次试错后锁死时在onAuthenticationError中进行Dialogui切换 但是切换后Dialog又初始化show出来 会概率出现UI问题
7、那种物理按键指纹识别的设备要注意多次错误后指纹识别会失去监听 但是用户再次尝试时Home键此时已经是返回主页的功能了 失去了指纹识别的功能 可能会对用户造成误导
8、魅族手机在指纹识别的时候 如果用户手动退回到首页啊或者切换app 回调不会成功返回onAuthenticationError 别的厂商都会返回onAuthenticationError这个回调这种时候 errorCode为FingerprintManager.FINGERPRINT_ERROR_CANCELED
这个时候就会出现一个bug 就是屏下指纹的魅族如果指纹识别时退出就会一直在屏幕中间悬浮一个指纹图标 因为指纹监听没有关闭 所以就需要我们自己进行监听和关闭 我是通过监听Activity是不是被切入后台 要是被切入就关闭监听
9、魅族M5会先进一次onhelp返回 提醒你放下手指 要注意UI和线程处理的问题 不然会出大错 哎 绝望被魅族弄得
Android指纹识别功能开发遇到的坑记录
最新推荐文章于 2025-03-20 07:55:35 发布