android M指紋的資料太少,經(jīng)過一段時(shí)間閱讀原生android代碼,寫了以下例子,貢獻(xiàn)出來給需要幫助的人。
創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、都安網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為都安等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。以下內(nèi)容基于64位的高通CPU,搭載fpc1020芯片,此部分代碼在原生android上做了更改,以應(yīng)付工廠指紋的測試。原生android指紋錄入需要采集10次(因不同的芯片而定)。
代碼簡單說明:
1.FingerPrintEnrollBase類:
重要的是
public interface Listener {
void onEnrollmentHelp(CharSequence helpString);
void onEnrollmentError(int errMsgId, CharSequence errString);
void onEnrollmentProgressChange(int steps, int remaining);
}
這個(gè)接口。
1)onEnrollmentHelp函數(shù):是下層返回的指紋操作幫助信息。
2)onEnrollmentError函數(shù)是下層返回的錯(cuò)誤信息,errMsgId是錯(cuò)誤信息類型,其中1表示指紋硬件不可用,3表示超時(shí),5表示操作已取消。errString是errMsgId對應(yīng)的文字信息,有需要的自己實(shí)驗(yàn)就知道了。
3)onEnrollmentProgressChange()函數(shù)是顯示當(dāng)前指紋的采集情況,steps:總共需要錄入多少次;remaining是剩余多少次,我在此函數(shù)中有打印Log。
附件zip包中的FingerPrintActivity是主Activity類,F(xiàn)ingerPrintEnrollBase是指紋Base類。
需要特別說明的是,在FingerPrintEnrollBase類中有一句:private byte[] mToken = new byte[69];這個(gè)數(shù)組正常情況是通過輸入密碼后經(jīng)由framework層向hal層申請的,我這里為了省去驗(yàn)證那一塊的代碼,通過sizeof(hw_auth_token_t)計(jì)算出來的為69,需要的請依此計(jì)算。我在代碼里實(shí)驗(yàn)過,此數(shù)組如果不是69(在64位CPU上),將直接導(dǎo)致程序crach!
附件圖片是fpc指紋的采集流程,僅作為參考。有需要selftest或checkboard test的請郵件我。
附件:http://down.51cto.com/data/2367765另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。