解析用RxJava实现Android指纹识别代码
2018-02-24 11:41:02
1045浏览
RxJava的核心内容很简单,就是进行异步操作。类似于Handler和AsyncTask的功能,但是在代码结构上不同。RxJava使用了观察者模式和建造者模式中的链式调用(类似于C#的LINQ)。
观察者模式:Observable(被观察者)被Observer(观察者)订阅(Subscribe)之后,Observable在发出消息的时候会通知对应的Observer,并且,一个Observable可以有被多个Observer订阅。
链式调用:和Builder模式类似,调用对应的方法对原对象进行处理后返回原对象,从而做到链式调用。
下面我们用rxjava封装了指纹识别,并实现类似Glide生命周期绑定,顺便开发了一个指纹控件。
Setup
测试机型推荐android版本6.0以上且具有指纹模块。
在项目build.gradle中配置:
repositories{
jcenter()//Ifnotalreadythere
}
在Module中build.gradle中配置:
Download
dependencies{
compile'com.zwh:RxFingerPrinter:1.1.0'
}
Usage
创建一个RxFingerPrinter实例:
RxFingerPrinterrxFingerPrinter=newRxFingerPrinter(this);//wherethisisanActivityinstance
在需要开启指纹识别的地方执行begin方法并订阅:
//可以在oncreat方法中执行
DisposableObserverobserver=newDisposableObserver(){
@Override
protectedvoidonStart(){
}
@Override
publicvoidonError(Throwablee){
//处理错误信息
if(einstanceofFPerException){
Toast.makeText(MainActivity.this,((FPerException)e).getDisplayMessage(),Toast.LENGTH_SHORT).show();
}
}
@Override
publicvoidonComplete(){
}
@Override
publicvoidonNext(BooleanaBoolean){
if(aBoolean){
//指纹验证成功
}else{
//指纹验证失败
}
}
};
rxfingerPrinter.begin().subscribe(observer);//RxfingerPrinter会自动在onPause()时暂停指纹监听,onResume()时恢复指纹监听)
rxfingerPrinter.addDispose(observer);//由RxfingerPrinter管理(会在onDestroy()生命周期时自动解除订阅),已可以不调用该方法,自己解除订阅
用FPerException封装了一下指纹识别时可能出现的异常,可以在订阅的Subscriber的onError(Throwablee)中获取该异常
@Override
publicvoidonError(Throwablee){
if(einstanceofFPerException){//判断该异常是否为FPerException
Toast.makeText(MainActivity.this,((FPerException)e).getDisplayMessage(),Toast.LENGTH_SHORT).show();
}
可以根据((FPerException)e).getCode()来获取对应的错误码,也可以直接调用((FPerException)e).getDisplayMessage()提示默认的错误信息。
publicStringgetDisplayMessage(){
switch(code){
caseSYSTEM_API_ERROR:
return"系统API小于23";
casePERMISSION_DENIED_ERROE:
return"没有指纹识别权限";
caseHARDWARE_MISSIING_ERROR:
return"没有指纹识别模块";
caseKEYGUARDSECURE_MISSIING_ERROR:
return"没有开启锁屏密码";
caseNO_FINGERPRINTERS_ENROOLED_ERROR:
return"没有指纹录入";
caseFINGERPRINTERS_FAILED_ERROR:
return"指纹认证失败";
default:
return"";
}
}
以上就是关于用RxJava实现Android指纹识别代码的详细介绍,最后想向大家强调一点,学编程基础一定要打牢,所有的概念和知识点必须理解透彻,解更多请关注扣丁学堂
Android培训官网、微信公众号平台,扣丁学堂
Android视频教程从零基础到精通免费试听试学,就业终端服务系统随时监控学员的学习情况和效果,顺利毕业后根据学员自身风格和学习效果推荐就业。如果你想要学习Android开发工程师技术就不要再犹豫了,喜欢就付诸行动吧。
【关注微信公众号获取更多的学习资料】
标签:
Android开发从入门到精通
Android学习路线图
Android培训
Android开发工程师
Android视频教程