您好,登錄后才能下訂單哦!
android M指紋的資料太少,經過一段時間閱讀原生android代碼,寫了以下例子,貢獻出來給需要幫助的人。
以下內容基于64位的高通CPU,搭載fpc1020芯片,此部分代碼在原生android上做了更改,以應付工廠指紋的測試。原生android指紋錄入需要采集10次(因不同的芯片而定)。
代碼簡單說明:
1.FingerPrintEnrollBase類:
重要的是
public interface Listener {
void onEnrollmentHelp(CharSequence helpString);
void onEnrollmentError(int errMsgId, CharSequence errString);
void onEnrollmentProgressChange(int steps, int remaining);
}
這個接口。
1)onEnrollmentHelp函數:是下層返回的指紋操作幫助信息。
2)onEnrollmentError函數是下層返回的錯誤信息,errMsgId是錯誤信息類型,其中1表示指紋硬件不可用,3表示超時,5表示操作已取消。errString是errMsgId對應的文字信息,有需要的自己實驗就知道了。
3)onEnrollmentProgressChange()函數是顯示當前指紋的采集情況,steps:總共需要錄入多少次;remaining是剩余多少次,我在此函數中有打印Log。
附件zip包中的FingerPrintActivity是主Activity類,FingerPrintEnrollBase是指紋Base類。
需要特別說明的是,在FingerPrintEnrollBase類中有一句:private byte[] mToken = new byte[69];這個數組正常情況是通過輸入密碼后經由framework層向hal層申請的,我這里為了省去驗證那一塊的代碼,通過sizeof(hw_auth_token_t)計算出來的為69,需要的請依此計算。我在代碼里實驗過,此數組如果不是69(在64位CPU上),將直接導致程序crach!
附件圖片是fpc指紋的采集流程,僅作為參考。有需要selftest或checkboard test的請郵件我。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。