本篇文章給大家分享的是有關(guān)怎么在Android中實(shí)現(xiàn)指紋識(shí)別功能,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
臨清網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
首先創(chuàng)建一個(gè)安卓項(xiàng)目,指紋識(shí)別作為最近幾年才興起的技術(shù),對(duì)安卓api level要求較高(api 23以上即jdk6.0以上)
創(chuàng)建一個(gè)button用于觸發(fā)指紋識(shí)別,并在MainActivity里對(duì)其監(jiān)聽,代碼如下
Button button=(Button)findViewById(R.id.checkFingerPrint); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d("btn","開始識(shí)別"); checkFingerPrint(); } });
在checkFingerPrint方法里調(diào)用系統(tǒng)提供的指紋識(shí)別函數(shù)FingerprintManagerCompat的authenticate,代碼如下
private void checkFingerPrint(){ FingerprintManagerCompat.from(this).authenticate(null,0,null,new MyCallBack(),null); }
在這里解釋一下這個(gè)方法里各個(gè)參數(shù)的含義
第一個(gè)參數(shù)是用于通過指紋驗(yàn)證取出AndroidKeyStore中的key的對(duì)象
第二個(gè)參數(shù)可以用來取消指紋驗(yàn)證,如果想手動(dòng)關(guān)閉驗(yàn)證,可以調(diào)用該參數(shù)的cancel方法
第三個(gè)參數(shù)沒什么意義,就是傳0就好了
第四個(gè)參數(shù)最重要,由于指紋信息是存在系統(tǒng)硬件中的,app是不可以訪問指紋信息的,所以每次驗(yàn)證的時(shí)候,系統(tǒng)會(huì)通過這個(gè)callback告訴你是否驗(yàn)證通過、驗(yàn)證失敗等
第五個(gè)參數(shù)是handler,fingerprint中的消息都通過這個(gè)handler來傳遞消息,如果你傳空,則默認(rèn)創(chuàng)建一個(gè)在主線程上的handler來傳遞消息,沒什么用,0傳null好了
通過這個(gè)函數(shù)api我們能夠看出來第四個(gè)參數(shù)最重要,他是決定指紋成功和失敗以及驗(yàn)證失敗后的后續(xù)操作,接下來我們就通過繼承重寫這個(gè)函數(shù)(注意參數(shù)一定要跟父類一致,博主就是沒寫對(duì)一開始函數(shù)不執(zhí)行),代碼如下
public class MyCallBack extends FingerprintManagerCompat.AuthenticationCallback{ private static final String TAG = "MyCallBack"; @Override public void onAuthenticationFailed(){ Log.d(TAG,"指紋錯(cuò)誤"); } public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result){ Log.d(TAG,"指紋正確"); } }
這里我們給指紋識(shí)別正確和錯(cuò)誤添加了打印在控制臺(tái)的后續(xù)動(dòng)作,當(dāng)然繼承的這個(gè)類還有其他的方法onAuthenticationError和onAuthenticationHelp,這兩個(gè)方法是處理識(shí)別不成功的。這里要區(qū)分一下識(shí)別不成功和識(shí)別錯(cuò)誤的區(qū)別,前者是指沒有識(shí)別到指紋而后者是識(shí)別到了指紋但不匹配
接下來我們用模擬器做測(cè)試,出于安全的考慮谷歌暫時(shí)沒有開放指紋存儲(chǔ)的功能,因此該功能使用的是系統(tǒng)里的指紋,也就是我們傳統(tǒng)的用于解鎖屏幕時(shí)設(shè)置的指紋,為了測(cè)試我們?nèi)ツM器里設(shè)置一個(gè)指紋
接下來進(jìn)到程序里面去測(cè)試我們的指紋識(shí)別,首先是用已經(jīng)錄入的指紋,通過控制臺(tái)可以看到已經(jīng)執(zhí)行了識(shí)別成功的方法
然后我們換錯(cuò)誤的指紋,再試一次,可以看到錯(cuò)誤指紋的方法也已經(jīng)被調(diào)用了
接下來貼出全部的代碼供大家參考
package com.example.john.fingerprinttest; import android.support.v4.hardware.fingerprint.FingerprintManagerCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button=(Button)findViewById(R.id.checkFingerPrint); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d("btn","開始識(shí)別"); checkFingerPrint(); } }); } private void checkFingerPrint(){ FingerprintManagerCompat.from(this).authenticate(null,0,null,new MyCallBack(),null); } public class MyCallBack extends FingerprintManagerCompat.AuthenticationCallback{ private static final String TAG = "MyCallBack"; @Override public void onAuthenticationFailed(){ Log.d(TAG,"指紋錯(cuò)誤"); } public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result){ Log.d(TAG,"指紋正確"); } } }
Android是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由美國(guó)Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。
以上就是怎么在Android中實(shí)現(xiàn)指紋識(shí)別功能,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
名稱欄目:怎么在Android中實(shí)現(xiàn)指紋識(shí)別功能
文章轉(zhuǎn)載:http://chinadenli.net/article0/giepoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、服務(wù)器托管、品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、企業(yè)建站、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)