Android指纹登录工具类封装
本文实例为大家分享了Android指纹登录工具类的封装代码,供大家参考,具体内容如下
核心
Android指纹是在6.0才出来的一个重要的功能
@RequiresApi(api=Build.VERSION_CODES.M)
核心的两个api:
FingerprintManager
KeyguardManager
step1
判断android版本,如果小于6.0支持不了指纹
if(Build.VERSION.SDK_INTstep2
判断手机硬件(有没有指纹感应区)就是手机是否支持传感
@RequiresApi(api=Build.VERSION_CODES.M) publicbooleanisHardFinger(){ if(fingerprintManager!=null&&fingerprintManager.isHardwareDetected()){ returntrue; }else{ returnfalse; } }step3
检查手机是否开启锁屏密码(如手机未开锁,涉及到一个优先级问题,先解锁后使用)
publicbooleanisWindowSafe(){ if(keyguardManager!=null&&keyguardManager.isKeyguardSecure()){ returntrue; }else{ returnfalse; } }step4
检查手机是否有录入指纹
@RequiresApi(api=Build.VERSION_CODES.M) publicbooleanisHaveHandler(){ if(fingerprintManager!=null&&fingerprintManager.hasEnrolledFingerprints()){ returntrue; }else{ returnfalse; } }只有以上步骤全满足,才能使用指纹
开启指纹验证
@RequiresApi(api=Build.VERSION_CODES.M) publicvoidauthenticate(FingerprintManager.CryptoObjectcryptoObject,CancellationSignalcancellationSignal, intflag, FingerprintManager.AuthenticationCallbackauthenticationCallback,Handlerhandler){ if(fingerprintManager!=null){ fingerprintManager.authenticate(cryptoObject,cancellationSignal,flag,authenticationCallback,handler); } }参数中最重要的就是cancellationSignal和callback,其他传null和0就行,cancellationsignal 是用来取消指纹验证的,而callback可以回调指纹验证失败次数或者指纹验证成功
最后附上简单工具类
/** *指纹识别工具类 */ publicclassFingerUtils{ privatefinalFingerprintManagerfingerprintManager; privatefinalKeyguardManagerkeyguardManager; @RequiresApi(api=Build.VERSION_CODES.M) privateFingerUtils(Contextcontext){ fingerprintManager=(FingerprintManager)context.getSystemService(Context.FINGERPRINT_SERVICE); keyguardManager=(KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE); } privatestaticFingerUtilssingleton=null; @RequiresApi(api=Build.VERSION_CODES.M) publicstaticFingerUtilsgetInstance(Contextcontext){ if(singleton==null){ synchronized(FingerUtils.class){ if(singleton==null){ singleton=newFingerUtils(context); } } } returnsingleton; } /** *②检查手机硬件(有没有指纹感应区) */ @RequiresApi(api=Build.VERSION_CODES.M) publicbooleanisHardFinger(){ if(fingerprintManager!=null&&fingerprintManager.isHardwareDetected()){ returntrue; }else{ returnfalse; } } /** *③检查手机是否开启锁屏密码 */ publicbooleanisWindowSafe(){ if(keyguardManager!=null&&keyguardManager.isKeyguardSecure()){ returntrue; }else{ returnfalse; } } /** *④检查手机是否已录入指纹 */ @RequiresApi(api=Build.VERSION_CODES.M) publicbooleanisHaveHandler(){ if(fingerprintManager!=null&&fingerprintManager.hasEnrolledFingerprints()){ returntrue; }else{ returnfalse; } } /** *创建指纹验证 */ @RequiresApi(api=Build.VERSION_CODES.M) publicvoidauthenticate(FingerprintManager.CryptoObjectcryptoObject,CancellationSignalcancellationSignal, intflag, FingerprintManager.AuthenticationCallbackauthenticationCallback,Handlerhandler){ if(fingerprintManager!=null){ fingerprintManager.authenticate(cryptoObject,cancellationSignal,flag,authenticationCallback,handler); } } /** *取消指纹验证.应该不会用上 */ publicvoidcannelFinger(CancellationSignalcancellationSignal){ cancellationSignal.cancel(); } }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。