【移动应用开发技术】怎么在Android中实现指纹识别功能_第1页
【移动应用开发技术】怎么在Android中实现指纹识别功能_第2页
【移动应用开发技术】怎么在Android中实现指纹识别功能_第3页
【移动应用开发技术】怎么在Android中实现指纹识别功能_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】怎么在Android中实现指纹识别功能

本篇文章给大家分享的是有关怎么在Android中实现指纹识别功能,在下觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着在下一起来看看吧。首先创建一个安卓项目,指纹识别作为最近几年才兴起的技术,对安卓apilevel要求较高(api23以上即jdk6.0以上)创建一个button用于触发指纹识别,并在MainActivity里对其监听,代码如下Button

button=(Button)findViewById(R.id.checkFingerPrint);

button.setOnClickListener(new

View.OnClickListener()

{

@Override

public

void

onClick(View

view)

{

Log.d("btn","开始识别");

checkFingerPrint();

}

});在checkFingerPrint方法里调用系统提供的指纹识别函数FingerprintManagerCompat的authenticate,代码如下private

void

checkFingerPrint(){

FingerprintManagerCompat.from(this).authenticate(null,0,null,new

MyCallBack(),null);

}在这里解释一下这个方法里各个参数的含义第一个参数是用于通过指纹验证取出AndroidKeyStore中的key的对象第二个参数可以用来取消指纹验证,如果想手动关闭验证,可以调用该参数的cancel方法第三个参数没什么意义,就是传0就好了第四个参数最重要,由于指纹信息是存在系统硬件中的,app是不可以访问指纹信息的,所以每次验证的时候,系统会通过这个callback告诉你是否验证通过、验证失败等第五个参数是handler,fingerprint中的消息都通过这个handler来传递消息,如果你传空,则默认创建一个在主线程上的handler来传递消息,没什么用,0传null好了通过这个函数api我们能够看出来第四个参数最重要,他是决定指纹成功和失败以及验证失败后的后续操作,接下来我们就通过继承重写这个函数(注意参数一定要跟父类一致,博主就是没写对一开始函数不执行),代码如下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,"指纹正确");

}

}这里我们给指纹识别正确和错误添加了打印在控制台的后续动作,当然继承的这个类还有其他的方法onAuthenticationError和onAuthenticationHelp,这两个方法是处理识别不成功的。这里要区分一下识别不成功和识别错误的区别,前者是指没有识别到指纹而后者是识别到了指纹但不匹配接下来我们用模拟器做测试,出于安全的考虑谷歌暂时没有开放指纹存储的功能,因此该功能使用的是系统里的指纹,也就是我们传统的用于解锁屏幕时设置的指纹,为了测试我们去模拟器里设置一个指纹接下来进到程序里面去测试我们的指纹识别,首先是用已经录入的指纹,通过控制台可以看到已经执行了识别成功的方法然后我们换错误的指纹,再试一次,可以看到错误指纹的方法也已经被调用了接下来贴出全部的代码供大家参考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(FingerprintManage

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论