欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

解析用RxJava實現(xiàn)Android指紋識別代碼

2018-02-24 11:41:02 2571瀏覽

RxJava的核心內(nèi)容很簡單,就是進行異步操作。類似于Handler和AsyncTask的功能,但是在代碼結(jié)構(gòu)上不同。RxJava使用了觀察者模式和建造者模式中的鏈?zhǔn)秸{(diào)用(類似于C#的LINQ)。

觀察者模式:Observable(被觀察者)被Observer(觀察者)訂閱(Subscribe)之后,Observable在發(fā)出消息的時候會通知對應(yīng)的Observer,并且,一個Observable可以有被多個Observer訂閱。

鏈?zhǔn)秸{(diào)用:和Builder模式類似,調(diào)用對應(yīng)的方法對原對象進行處理后返回原對象,從而做到鏈?zhǔn)秸{(diào)用。

下面我們用rxjava封裝了指紋識別,并實現(xiàn)類似Glide生命周期綁定,順便開發(fā)了一個指紋控件。

Setup

測試機型推薦android版本6.0以上且具有指紋模塊。



在項目build.gradle中配置:

repositories{

jcenter()//Ifnotalreadythere

}

在Module中build.gradle中配置:

Download

dependencies{

compile'com.zwh:RxFingerPrinter:1.1.0'

}

Usage

創(chuàng)建一個RxFingerPrinter實例:

RxFingerPrinterrxFingerPrinter=newRxFingerPrinter(this);//wherethisisanActivityinstance

在需要開啟指紋識別的地方執(zhí)行begin方法并訂閱:

//可以在oncreat方法中執(zhí)行

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()時暫停指紋監(jiān)聽,onResume()時恢復(fù)指紋監(jiān)聽)

rxfingerPrinter.addDispose(observer);//由RxfingerPrinter管理(會在onDestroy()生命周期時自動解除訂閱),已可以不調(diào)用該方法,自己解除訂閱

用FPerException封裝了一下指紋識別時可能出現(xiàn)的異常,可以在訂閱的Subscriber的onError(Throwablee)中獲取該異常

@Override

publicvoidonError(Throwablee){

if(einstanceofFPerException){//判斷該異常是否為FPerException

Toast.makeText(MainActivity.this,((FPerException)e).getDisplayMessage(),Toast.LENGTH_SHORT).show();

}

可以根據(jù)((FPerException)e).getCode()來獲取對應(yīng)的錯誤碼,也可以直接調(diào)用((FPerException)e).getDisplayMessage()提示默認(rèn)的錯誤信息。

publicStringgetDisplayMessage(){

switch(code){

caseSYSTEM_API_ERROR:

return"系統(tǒng)API小于23";

casePERMISSION_DENIED_ERROE:

return"沒有指紋識別權(quán)限";

caseHARDWARE_MISSIING_ERROR:

return"沒有指紋識別模塊";

caseKEYGUARDSECURE_MISSIING_ERROR:

return"沒有開啟鎖屏密碼";

caseNO_FINGERPRINTERS_ENROOLED_ERROR:

return"沒有指紋錄入";

caseFINGERPRINTERS_FAILED_ERROR:

return"指紋認(rèn)證失敗";

default:

return"";

}

}

以上就是關(guān)于用RxJava實現(xiàn)Android指紋識別代碼的詳細(xì)介紹,最后想向大家強調(diào)一點,學(xué)編程基礎(chǔ)一定要打牢,所有的概念和知識點必須理解透徹,解更多請關(guān)注扣丁學(xué)堂Android培訓(xùn)官網(wǎng)、微信公眾號平臺,扣丁學(xué)堂Android視頻教程從零基礎(chǔ)到精通免費試聽試學(xué),就業(yè)終端服務(wù)系統(tǒng)隨時監(jiān)控學(xué)員的學(xué)習(xí)情況和效果,順利畢業(yè)后根據(jù)學(xué)員自身風(fēng)格和學(xué)習(xí)效果推薦就業(yè)。如果你想要學(xué)習(xí)Android開發(fā)工程師技術(shù)就不要再猶豫了,喜歡就付諸行動吧。



【關(guān)注微信公眾號獲取更多的學(xué)習(xí)資料】



查看更多關(guān)于“Android開發(fā)技術(shù)的相關(guān)資訊>>

標(biāo)簽: Android開發(fā)從入門到精通 Android學(xué)習(xí)路線圖 Android培訓(xùn) Android開發(fā)工程師 Android視頻教程

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部