Android 实现指纹识别demo

public class FingerprintManagerUtil {

private static FingerprintManagerCompat fingerprintManagerCompat;

private static CancellationSignal cancellationSignal;

private FingerprintManagerUtil() {

}

/**

  • 开始进行指纹验证

  • @param context 上下文

  • @param fingerprintListener 指纹验证回调接口

*/

public static void startFingerprinterVerification(Context context, final FingerprintListener fingerprintListener) {

fingerprintManagerCompat = FingerprintManagerCompat.from(context);

// 是否支持指纹验证

if (fingerprintManagerCompat == null || !fingerprintManagerCompat.isHardwareDetected()) {

if (fingerprintListener != null)

fingerprintListener.onNonsupport();

return;

}

// 是否录入了指纹

if (!fingerprintManagerCompat.hasEnrolledFingerprints()) {

if (fingerprintListener != null)

fingerprintListener.onEnrollFailed();

return;

}

// 回调可以开始进行认证

if (fingerprintListener != null)

fingerprintListener.onAuthenticationStart();

cancellationSignal = new CancellationSignal();

fingerprintManagerCompat.authenticate(null, 0, cancellationSignal, new FingerprintManagerCompat.AuthenticationCallback() {

@Override

public void onAuthenticationError(int errMsgId, CharSequence errString) {

// 验证出错回调,指纹传感器会关闭一段时间

super.onAuthenticationError(errMsgId, errString);

if (fingerprintListener != null)

fingerprintListener.onAuthenticationError(errMsgId, errString);

}

@Override

public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {

// 验证帮助回调

super.onAuthenticationHelp(helpMsgId, helpString);

if (fingerprintListener != null)

fingerprintListener.onAuthenticationHelp(helpMsgId, helpString);

}

@Override

public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result) {

// 验证成功

super.onAuthenticationSucceeded(result);

if (fingerprintListener != null)

fingerprintListener.onAuthenticationSucceeded(result);

}

@Override

public void onAuthenticationFailed() {

// 验证失败 指纹验证失败后,指纹传感器不会立即关闭指纹验证,

// 系统会提供5次重试的机会,即调用5次onAuthenticationFailed()后,才会调用onAuthenticationError()

super.onAuthenticationFailed();

if (fingerprintListener != null)

fingerprintListener.onAuthenticationFailed();

}

}, null);

}

/**

  • 取消指纹验证

*/

public static void cancel() {

if (cancellationSignal != null && !cancellationSignal.isCanceled())

cancellationSignal.cancel();

}

/**

  • 指纹验证回调监听

*/

public interface FingerprintListener {

/**

  • 手机或系统不支持指纹验证时回调

*/

void onNonsupport();

/**

  • 手机支持指纹验证,但是还没有录入指纹时回调

*/

void onEnrollFailed();

/**

  • 可以进行指纹验证时回调,该方法主要作用用于在进行指纹验证之前做一些操作,比如弹出对话框

*/

void onAuthenticationStart();

/**

  • 指纹验证成功时回调

  • @param result {@link FingerprintManagerCompat.AuthenticationResult} 对象

*/

void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result);

/**

  • 验证失败时回调


  •     

  • 指纹验证失败后,指纹传感器不会立即关闭指纹验证,系统会提供5次重试的机会,即调用

  • 5次 {@link #onAuthenticationFailed()} 后,才会调用 {@link #onAuthenticationError(int, CharSequence)}

*/

void onAuthenticationFailed();

/**

  • 验证出错时回调,指纹传感器会关闭一段时间,具体时间根据厂商不同有所区别

  • @param errMsgId 错误信息id

  • @param errString 错误信息描述

*/

void onAuthenticationError(int errMsgId, CharSequence errString);

/**

  • 验证帮助回调

  • @param helpMsgId 帮助信息id

  • @param helpString 帮助信息描述

*/

void onAuthenticationHelp(int helpMsgId, CharSequence helpString);

}

/**

  • FingerprintListener 回调监听适配器,减少不必要方法的重写,只需要重写需要处理的对应方法即可

*/

public abstract static class FingerprintListenerAdapter implements FingerprintListener {

@Override

public void onNonsupport() {

}

@Override

public void onEnrollFailed() {

}

@Override

public void onAuthenticationStart() {

}

@Override

public void onAuthenticationFailed() {

}

@Override

public void onAuthenticationError(int errMsgId, CharSequence errString) {

}

@Override

public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {

}

}

}

2、activity调用以及指纹识别验证回调方法(调用后,触摸手机指纹按钮即可实现指纹识别)

private AlertDialog alertDialog;

// 调用指纹验证方法

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

最后

**要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。


一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img
(img-MeNQDUvi-1712823587954)]

最后

**要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。


[外链图片转存中…(img-21erdTXJ-1712823587954)]

[外链图片转存中…(img-XuRwZ6zo-1712823587954)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-JRcOm1Ms-1712823587955)]

有助于手机指纹解锁android开发.1. 用USB OTG线连接指纹识别仪 2. 运行NOEMHost.apk如下图: 3. 点击“Open”按钮,弹出如下5. 使用方法: 5.1 注册指纹:点ID编号输入框,弹出虚拟键盘,输入待注册的ID编号,再按“ENROLL”,同一个手指按3次后即可。 5.2 识别:注册完指纹后,点“Identify”按钮,按手指即可1:N识别 5.3 验证:在ID编号输入框输入待比对的ID号,按手指即可 5.4 删除某个指纹:在ID编号输入框输入待删除的ID号,按“Remove Tmpl”即可 5.5 清空指纹:直接点击“Remove All”按钮即可 5.6 获取已注册的指纹总数:点击“GetEnrollCount”按钮即可 5.7 获取可注册的ID编号:点击“Get Empty ID”按钮即可 5.8 读取指纹图像:点击“Capture Image”按钮,再按手指即可采集到一帧指纹图像并显示 概念解释: ID Note:64字节的数据,可用于对应ID号的详细描述(比如:姓名、身份证号、允许启用某个APP程序的编号等等) 指纹重复检查(Dup Check):用于允许/禁止是否有重复指纹的检测,默认设置是:允许 安全等级(security Level):1-5可设置,数值越大安全等级越高,模块默认设置是:3 自学习功能(Auto Learn):识别成功后将数据库中的该指纹模板数据与当前采集的指纹数据融合后(学习)更新数据库中对应的指纹模板数据。模块默认设置:允许
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值