解析用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开发工程师 Android视频教程

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号