android指纹识别开发,Android 指纹识别
# android 指纹识别并检测指纹库是否变更
android API 23时新增的功能,指纹识别
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网站空间、营销软件、网站建设、铜山网站维护、网站推广。
主要类:FingerpringManager
在API28后,FingerpringManager被遗弃,使用BiometricPrompt,此时授权识别的弹窗不能自定义,
只能使用官方统一弹窗,只能设置各个授权文案。各个开发商内部实现可能不一致。
通过只是使用指纹识别,直接使用官方api即可,但出于安全或业务场景需求,很多都需要去检测生物库信息是否变更,
如指纹库在重新指纹识别前是否发生变更,这个官方api就没有提供方法,需要我们自己实现。
参考:
通过检测密钥查看是否变更( )
在API28以前,指纹库信息时可以通过反射获取,获取的信息有指纹id、groupId、指纹名称、指纹个数、设备id等等,
而FingerprintBean是这样的:
最理想的方式是我们反射获取到这些指纹库信息,然后将这些信息保存到本地,每次调用指纹识别时,获取当前指纹库信息与之前的指纹库信息比较,
只有不同即可判定指纹库信息变更,
但在实际操作中,发现在手机上获取到的指纹id只是简单的1、2、3即指纹库里的排列顺序,而指纹名称是可以随意更改,groupId、deviceId都为0,
如果使用这些信息去校验,错误率太高。
还有一种方式即是上面参考链接中的,
检测指纹库密钥信息是否变更
但在上面链接那种方法中,有几个问题:
1、增加、删除指纹无法检测
2、使用修改指纹的手指识别后才能检测出修改
于是将反射、密钥检测两者结合,
先反射获取指纹库信息,只是比较指纹库指纹个数,先判断指纹个数是否发生变更,就可知道指纹库信息变更了
如果指纹个数没有变更,再来校验密钥是否发生变化
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.指纹/人脸登录时验证上次加密的字符串
相应的流程图
安卓系统只能录一个指纹嘛
不是的,可以录5个指纹。
在不同手机厂商的定制系统里面获取到的指纹信息很可能是不同的。
指纹识别是在Android6.0之后新增的功能,在使用的时候需要先判断用户手机的系统版本是否支持指纹识别。由于使用指纹识别功能需要一个加密对象该对象一般是由对称加密或者非对称加密获得。主要区别在于加密过程中密钥的创建和使用,纯本地的使用指纹识别功能,只需要对称加密即可;而与后台交互则需要使用非对称加密:将私钥用于本地指纹识别,识别成功后将加密信息传给后台,后台开发人员用公钥解密,以获得用户信息。
安卓5.0和6.0的区别
安卓6.0又称Android M。一款“为工作升级而生”的Android系统。
Android M最大的一个亮点是:为用户提供两套相互独立的解决方案。
简单来说,Android M将为每位用户的每一个应用都提供两套数据存储方案。一套专门用来储存用户的工作资料,另一套专门用来存储用户的个人信息。并且,让这两套系统完全相互独立。
在Android 5.X系统中ART已经取代Dalvik成为默认选项,系统执行效率大大提高,而全新的Android 6.0在5.X的基础上又加入了诸多新特性,进一步提升用户体验。
Android 6.0新特性
锁屏下语音搜索
用户可以直接在锁屏状态下进行语音搜索,虽然现在的一些安卓手机支持语音唤醒功能,但这些语音唤醒都是第三方厂商开发的,而此次的Android 6.0在系统层面加入锁屏下语音搜索,这无疑会在体验上有一个明显的提升。
指纹识别
说道指纹识别,很多用户都会觉得现在的中高端安卓手机都支持,但事实上这些安卓手机的指纹识别都是各个厂商自行开发的并没有系统底层的支持。Android 6.0则在系统层面加入指纹识别,能提供原生指纹识别API,这不但降低了厂商开发指纹识别模块的成本,最重要的是原生指纹识别将会大大提升安卓手机的指纹识别支付安全性。
更完整的应用权限管理
在此前的原生安卓系统中有应用通知管理功能,但更为深入的应用权限管理只能靠第三方应用实现。Android 6.0进一步强化应用权限管理,应用权限管理也成为系统级的功能,不过这对于那些权限管理软件来说并不是什么好消息。
Doze电量管理
Android 6.0自带Doze电量管理功能,在“Doze”模式下,手机会在一段时间未检测到移动时,让应用休眠清杀后台进程减少功耗,谷歌表示,当屏幕处于关闭状态,平均续航时间提高30%。
Now on Tap功能
Now on Tap功能是和Google搜索紧密结合的功能,它可以让谷歌从任何应用中进行搜索。例如,在微信中聊天的时候提到餐馆,那么就可以在不跳转的情况下进行谷歌搜索。
App Links
通过App Links功能,Android平台能够向网络服务器提出申请,自主识别链接内容。直接跳转到App客户端中,改善用户体验,有利于让用户在体验更完善的App客户端完成更多操作。
此外,在Android 6.0谷歌还加入了Android Pay进一步强化移动支付,同时也是为了对抗Apple Pay。在发布会上谷歌表示Android 6.0将在下周开始推送,Nexus5/6/7/9以及Nexus Player将能够在第一时间得到升级。
Android 6.0.1版本发布 增加新emoji表情
安卓5.2就不保留后台了,这项改进被称为 控制内存溢
android 指纹登录 怎么做
一、 iPhone6指纹识别不灵解决方法:1、首先,录指纹的时候确保精准要使用Touch ID,首选当然要录入你的指纹信息,而这个步骤是关乎到识别准确率的重要部分。2、指纹录入分为两个部分,首先是[模糊录入],需要多次放置手指,每次录入的间隔手机会震动提示,这时要抬起手指然后再次录入。3、[模糊录入]完成以后,系统会提示调整握持姿势,也就是调整不同位置的录入,有助于增加识别率,毕竟你无法保证每一次使用手指都放在相同的位置上。二、指纹录入注意事项:1.调整位置录入时,不仅仅需要将手指垂直放置,还需要适当调整角度,可以随意调整手指的角度,毕竟日常解锁手机的时候,不可能把手指端端正正的放在home键上。2.使用不同的手指Touch ID最多可以录入5个手指的指纹,如果某个手指的指纹不太明显不容易识别,最好多录入几个,来增加识别率。3.确保手指接触到金属环Touch ID的传感器由多部分组成,其中金属环是增加识别率最重要的组件之一,所以在使用时要确保手指接触到金属环,而不是悬空地放在Home键中央。三、指纹录完以后,在平时使用手机时,由于下面一些原因也会导致指纹识别失败:1.手指或手机潮湿、环境温度过低Touch ID传感器是通过手指的静电和热量来实现识别,所以,如果手指或是Home键沾上水渍或者过于潮湿,也会导致识别失败,这时就要确保手指和手机是干燥的。另外,较冷的环境也会影响传感器的工作。2.手机重启出于安全性考虑,每次在手机重启之后是无法指纹解锁的,需要使用密码解锁后才能再次使用Touch ID功能。3.传感器有污渍如果Home键有污渍,对指纹识别也是有很大影响的,当然无法保证手指时时刻刻处于非常干净的状态,这时候只需要用干净的布子擦拭home键即可,一般指纹识别立刻就会“满血复活”。
-
android手机为什么把指纹识别设在背面
背面指纹识别方案是为了不破坏手机屏幕的完整性和一体性,为了提升手机屏幕的屏占比。随着技术的发展,现在已经开发出了屏下指纹模组识别技术,在手机屏幕内部装置指纹模组,这样既不会破坏屏幕的完整,使用也更方便。手机指纹模组是由外圈、涂层、传感器、驱动芯片、FPCBA、PSA、连接器这几个部分组成的。手机指纹模组出厂前需要进行质量测试、性能测试,测试中要用到连接测试电路并与电子芯片匹配的测试针模组。弹片微针模组具有稳定的导通作用,可通过的电流最高能达到50A!电流传输过程电阻恒定、电性稳定,无电流衰减、无卡pin、断针,有着可靠的解决方案。
网页题目:android指纹识别开发,Android 指纹识别
标题网址:http://myzitong.com/article/dseooch.html