指紋登錄可以實現(xiàn)應(yīng)用的快捷登錄,在Android6.0谷歌才提供統(tǒng)一指紋SDK接口,在6.0之前都是各個廠商自定義。
站在用戶的角度思考問題,與客戶深入溝通,找到清流網(wǎng)站設(shè)計與清流網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋清流地區(qū)。
下面介紹如何在我們的應(yīng)用中加入指紋登錄的功能,之前實現(xiàn)指紋解鎖都是用的FingerprintManager類,F(xiàn)ingerprintManager在最新的Android 9.0系統(tǒng)上已經(jīng)被廢棄了,當(dāng)Google在v4包中把FingerprintManager改為了FingerprintManagerCompat,而Compat是兼容的意思,所以Google在v4包中做了一些兼容性處理,官方推薦使用后者。所以本demo用的就是FingerprintManagerCompat工具類。
一、申請權(quán)限
二、驗證手機是否支持指紋,如果手機不支持,那就沒辦法了。
FingerprintManagerCompat提供了三個方法:
三、開啟指紋登錄,一般來說都是彈出個提示框用于顯示指紋識別的狀態(tài)。
首先,生成一個對稱加密的key
然后,通過生成的key初始化生成一個Cipher對象
最后,通過上面生成的Cipher去開啟指紋驗證
下面詳細說一下,剛才開啟指紋驗證的時候的步驟:
1、創(chuàng)建一個FingerprintManagerCompat對象,上面有說到谷歌已經(jīng)不推薦使用FingerprintManager類。
2、拿到FingerprintManagerCompat對象后就可以調(diào)authenticate方法進行指紋識別了,這里面需要傳遞幾個參數(shù):
(1)CryptoObject 這是一個加密類的對象,指紋掃描器會使用這個對象來判斷認證結(jié)果的合法性。這個對象可以是null,但是這樣的話,就意味這app無條件信任認證的結(jié)果,雖然從理論上這個過程可能被攻擊,數(shù)據(jù)可以被篡改,這是app在這種情況下必須承擔(dān)的風(fēng)險。因此,建議這個參數(shù)不要置為null。這里就需要使用之前初始化的Cipher去創(chuàng)建一個CryptoObject 對象。
(2)flags 標識位,這個標志位應(yīng)該是保留將來使用的,在這里我們傳0就可以了。
(3)cancel這個是CancellationSignal類的一個對象,這個對象用來在指紋識別器掃描用戶指紋的是時候取消當(dāng)前的掃描操作,如果不取消的話,那么指紋掃描器會移植掃描直到超時(一般為30s,取決于具體的廠商實現(xiàn)),這樣的話就會比較耗電。建議這個參數(shù)不要置為null。識別過程中可以手動取消指紋識別。
(4)callback這個參數(shù)很重要,看名字就知道這是個回調(diào)的接口,這個參數(shù)等最后我們詳細來介紹。這個參數(shù)不能為null。
(5)handler這是Handler類的對象,F(xiàn)ingerprintManagerCompat將會使用這個handler中的looper來處理來自指紋識別硬件的消息。一般來說,我們開發(fā)的時候可以直接傳null,因為FingerprintManagerCompat會默認使用app的main looper來處理。
3、最后我們來說一下剛才的callback這個參數(shù)
四、總結(jié)
以上就是一個開發(fā)指紋識別的基本過程,希望對大家有所幫助。。。
1. 6.0+
2.手機里至少要有一個已經(jīng)錄入的指紋
需要指紋權(quán)限:uses-permissionandroid:name="android.permission.USE_FINGERPRINT"/
人臉識別可以引入虹軟的sdk
主要介紹一下FingerprintManager類,提供類三個方法
第一個方法:啟動指紋識別
第二個方法:判斷手機里面是否有已經(jīng)有錄入的指紋(至少得有一個)
第三個方法:判斷手機是否有指紋感應(yīng)區(qū)(硬件支持)
這里需要注意一下,F(xiàn)ingerprintManager對象的isHardwareDetected()方法和hasEnrolledFingerprints()方法需要API級別為23及以上,如果你的API級別小于23,那就得加上@TargetApi(23)
1.FingerPrintManager.AuthenticationCallback:
在驗證時傳入該接口,通過該接口來返回驗證指紋的結(jié)果
2.FingerPrintManager.AuthenticationResult:
當(dāng)指紋驗證正確時,接口里返回的參數(shù)
3.FingerPrintManager.CryptoObject:
由FingerPrintManager支持的封裝加密對象的類
我們將指紋識別的CallBack綁定到FingerprintManager中,以獲得指紋識別的結(jié)果。這就得引入上面圖片中FingerprintManager的第一個方法:
public void authenticate(FingerprintManager.CryptoObject crypto,CancellationSignal cancel,int flags,FingerprintManager.AuthenticationCallback callback,Handler handler)
可以看到,這個方法中傳遞了一個AuthenticationCallback,用于獲取指紋識別結(jié)果 ,傳遞了一個CancellationSignal。至此,指紋識別已經(jīng)開啟了。
取消指紋識別很簡單,authenticate方法中的第二個參數(shù)是一個CancellationSignal對象,這個對象就是用來維護取消操作的,這些操作包括取消監(jiān)聽和設(shè)定取消回調(diào)等。所以,如果要取消,這個參數(shù)就不能傳Null。
取消指紋識別 mCancellationSignal.cancel();
取消之后會執(zhí)行的方法是onAuthenticationError()
1.使用密碼登錄成功后,去判斷設(shè)備是否支持指紋/人臉登錄,如果支持可以讓用戶自行選擇后續(xù)是否需要指紋/人臉登錄
2.判斷用戶指紋/人臉驗證是否成功
3.生成加密字符串 可以用sp存儲
4.指紋/人臉登錄時驗證上次加密的字符串
相應(yīng)的流程圖
現(xiàn)在除了蘋果手機有手機指紋識別功能之外,很多的安卓智能手機也有了手機指紋識別功能了,下面給大家說說安卓指紋解鎖怎么設(shè)置?
01
首先在我們的手機界面找到“設(shè)置”的圖標,點擊進入。
02
進入設(shè)置界面后下來菜單找到“指紋和安全”的欄目點擊進入。
03
進入指紋和安全后我們看到有“指紋識別”的選項,繼續(xù)點擊進入。
04
進入后會有密碼驗證或者指紋驗證,我們驗證后進入,然后點擊底部的“添加指紋”按鈕。
05
這時候我們講手指放入到指紋按鈕處進行錄入指紋。
06
錄入完之后,我們會在指紋識別的界面看到我們剛才錄入的指紋,這就是安卓指紋解鎖設(shè)置啦。
當(dāng)前文章:指紋android,指紋歌詞
文章地址:http://chinadenli.net/article48/dsdigep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、微信小程序、網(wǎng)站導(dǎo)航、商城網(wǎng)站、響應(yīng)式網(wǎng)站、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)