怎么在Android中實現(xiàn)指紋識別功能-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)怎么在Android中實現(xiàn)指紋識別功能,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元嘉祥做網(wǎng)站,已為上家服務(wù),為嘉祥各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792

首先創(chuàng)建一個安卓項目,指紋識別作為最近幾年才興起的技術(shù),對安卓api level要求較高(api 23以上即jdk6.0以上)

創(chuàng)建一個button用于觸發(fā)指紋識別,并在MainActivity里對其監(jiān)聽,代碼如下

Button button=(Button)findViewById(R.id.checkFingerPrint);
  button.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    Log.d("btn","開始識別");
    checkFingerPrint();
   }
  });

在checkFingerPrint方法里調(diào)用系統(tǒng)提供的指紋識別函數(shù)FingerprintManagerCompat的authenticate,代碼如下

private void checkFingerPrint(){
  FingerprintManagerCompat.from(this).authenticate(null,0,null,new MyCallBack(),null);
 }

在這里解釋一下這個方法里各個參數(shù)的含義

第一個參數(shù)是用于通過指紋驗證取出AndroidKeyStore中的key的對象

第二個參數(shù)可以用來取消指紋驗證,如果想手動關(guān)閉驗證,可以調(diào)用該參數(shù)的cancel方法

第三個參數(shù)沒什么意義,就是傳0就好了

第四個參數(shù)最重要,由于指紋信息是存在系統(tǒng)硬件中的,app是不可以訪問指紋信息的,所以每次驗證的時候,系統(tǒng)會通過這個callback告訴你是否驗證通過、驗證失敗等

第五個參數(shù)是handler,fingerprint中的消息都通過這個handler來傳遞消息,如果你傳空,則默認創(chuàng)建一個在主線程上的handler來傳遞消息,沒什么用,0傳null好了

通過這個函數(shù)api我們能夠看出來第四個參數(shù)最重要,他是決定指紋成功和失敗以及驗證失敗后的后續(xù)操作,接下來我們就通過繼承重寫這個函數(shù)(注意參數(shù)一定要跟父類一致,博主就是沒寫對一開始函數(shù)不執(zhí)行),代碼如下

public class MyCallBack extends FingerprintManagerCompat.AuthenticationCallback{
  private static final String TAG = "MyCallBack";
  @Override
  public void onAuthenticationFailed(){
   Log.d(TAG,"指紋錯誤");
  }
  public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result){
   Log.d(TAG,"指紋正確");
  }
 }

這里我們給指紋識別正確和錯誤添加了打印在控制臺的后續(xù)動作,當然繼承的這個類還有其他的方法onAuthenticationError和onAuthenticationHelp,這兩個方法是處理識別不成功的。這里要區(qū)分一下識別不成功和識別錯誤的區(qū)別,前者是指沒有識別到指紋而后者是識別到了指紋但不匹配

接下來我們用模擬器做測試,出于安全的考慮谷歌暫時沒有開放指紋存儲的功能,因此該功能使用的是系統(tǒng)里的指紋,也就是我們傳統(tǒng)的用于解鎖屏幕時設(shè)置的指紋,為了測試我們?nèi)ツM器里設(shè)置一個指紋

怎么在Android中實現(xiàn)指紋識別功能

接下來進到程序里面去測試我們的指紋識別,首先是用已經(jīng)錄入的指紋,通過控制臺可以看到已經(jīng)執(zhí)行了識別成功的方法

怎么在Android中實現(xiàn)指紋識別功能

然后我們換錯誤的指紋,再試一次,可以看到錯誤指紋的方法也已經(jīng)被調(diào)用了

怎么在Android中實現(xiàn)指紋識別功能

接下來貼出全部的代碼供大家參考

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","開始識別");
    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,"指紋錯誤");
  }
  public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result){
   Log.d(TAG,"指紋正確");
  }
 }
}
Android是什么

Android是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機和平板電腦,由美國Google公司和開放手機聯(lián)盟領(lǐng)導及開發(fā)。

以上就是怎么在Android中實現(xiàn)指紋識別功能,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享文章:怎么在Android中實現(xiàn)指紋識別功能-創(chuàng)新互聯(lián)
鏈接URL:http://muchs.cn/article2/cdsgoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈標簽優(yōu)化、定制網(wǎng)站、網(wǎng)站制作

廣告

聲明:本網(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)

成都網(wǎng)站建設(shè)公司