Android指纹识别,兼容Android 6.0 - Android 11

写作不易,转载请注明出处:
https://blog.csdn.net/qq_34676644/article/details/118758483
or
https://www.jianshu.com/p/530c9fa31786

前言

官方的指纹识别在Android 6.0引入,Android 6.0之前指纹识别由厂商自己定义。所以Android 6.0之前的指纹识别碎片化严重。

概览

1.类

1. FingerprintManager:Android 6.0引入,Android 9.0 废弃。使用时需加入权限:permission USE_FINGERPRINT

注:包含检查是否支持指纹,指纹比对是否成功等。支持包中的FingerprintManagerCompat类对其作了包装和兼容处理。不做详细介绍

2.BiometricManager:Android 9.0引入。其不仅包含指纹识别,还包含人脸识别等其他验证方式。
其主要功能为:检查当前设备是否具有指纹识别的条件,例如:设备是否具有指纹识别的硬件,指纹是否已经录入,硬件是否可用等。
需要配合权限permission USE_BIOMETRIC使用

注:目前,该类只有指纹识别的相关API,以后可能会加入人脸识别等其他生物识别的相关API。
推荐使用AndroidX支持库中的类,其已经对Android 6.0-Android 11做了兼容性处理:

  • 在Android 9 版本和之前版本中会调用FingerprintManagerCompat
  • 在Android 10 版本开始会调用框架层BiometricManager

3.BiometricPrompt:
其主要功能为:发起指纹验证
需要配合权限permission USE_BIOMETRIC使用

4.BiometricPrompt.PromptInfo:
其主要功能为:验证对话框

通过其内部类BiometricPrompt.PromptInfo.Builder,采用创造者模式配置对话框。仅能配置少量参数,例如:标题,副标题等。这意味着:
1.不分Android版本,对话框的样式统一
2.无法自定义对话款样式

2.权限

  1. permission USE_FINGERPRINT:使用FingerprintManagerFingerprintManagerCompat类进行指纹识别时,需获取此权限。

    此权限为:Normal Permission

  2. permission USE_BIOMETRIC:使用BiometricManager等类进行指纹识别时,需获取此权限。

    当使用AndroidX支持库中的BiometricManager时候不需要声明此权限,因为支持库中已经添加此权限

详细介绍

1.BiometricManager属性和方法

  • 是否可用的状态码

属性 含义
BIOMETRIC_ERROR_HW_UNAVAILABLE(value:1) The user can’t authenticate because the hardware is unavailable. Try again later (传感器当前不可用,清稍后再试)
BIOMETRIC_ERROR_NONE_ENROLLED (value:11) The user can’t authenticate because no biometric or device credential is enrolled.(信息没有录入,比如还没录入指纹)
BIOMETRIC_ERROR_NO_HARDWARE (value:12) The user can’t authenticate because there is no suitable hardware (e.g. no biometric sensor or no keyguard).(没有合适的传感器或者没设置密码,例如手机没有指纹传感器)
BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED (value:15) The user can’t authenticate because a security vulnerability has been discovered with one or more hardware sensors. The affected sensor(s) are unavailable until a security update has addressed the issue.(传感器存在已知的漏洞,在更新修复漏洞前,传感器不可用)
BIOMETRIC_ERROR_UNSUPPORTED(value:-2) The user can’t authenticate because the specified options are incompatible with the current Android version.(设置的一些验证条件,当前手机的Android版本无法满足)
BIOMETRIC_STATUS_UNKNOWN(value:-1) Unable to determine whether the user can authenticate(不知道是否可以进行验证。通常在旧版本的Android手机上出现,当出现这个错误是,仍然可以尝试进行验证)
BIOMETRIC_SUCCESS(value:0) The user can successfully authenticate.(可以进行验证)
  • 方法:

方法名 作用 返回值
canAuthenticate()(已废弃)推荐使用canAuthenticate(int) 检查传感器是否可用。 是否可用的状态码
canAuthenticate (int authenticators) 检查传感器是否可用。 是否可用的状态码
from(Context context)(静态方法) 创建BiometricManager
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Android指纹识别开发可以使用Android操作系统提供的Fingerprint API来实现。开发者可以在应用中使用这些API来构建指纹识别功能,包括指纹认证和指纹验证。使用这些API还可以创建自定义指纹认证界面。 ### 回答2: Android指纹识别开发是指在Android应用中集成和利用设备的指纹识别功能。指纹识别作为一种生物识别技术,已经得到广泛应用,可以用于增加安全性和方便性,特别是在支付、解锁和身份验证等方面。 要进行Android指纹识别开发,首先需要了解Android系统对于指纹识别的支持。从Android 6.0(API Level 23)开始,Android提供了一套指纹API,开发者可以使用该API与设备上的指纹传感器进行交互。指纹API提供了用于管理指纹硬件和进行指纹验证的功能。 在开发过程中,首先需要在AndroidManifest.xml文件中声明指纹识别的权限。接下来,可以使用FingerprintManager类来管理和操作指纹传感器。可以通过调用authenticate()方法进行指纹验证,并在验证结果回调中获取验证结果。 除了指纹验证之外,还可以在应用中利用指纹识别功能进行更高级的操作。例如,可以使用FingerprintManager类的hasEnrolledFingerprints()方法来判断设备上是否已经注册了指纹,以此决定是否显示指纹识别相关的功能。 为了提供更好的用户体验,可以使用BiometricPrompt类来构建更友好的指纹识别界面。BiometricPrompt类提供了标准化的指纹识别对话框,可以自动适配设备的指纹传感器,并提供一致的用户界面和交互方式。 总而言之,Android指纹识别开发为应用提供了更高级别的安全性和身份验证方式。开发者可以通过使用指纹API和相关类来集成和利用设备上的指纹识别功能,增加应用的安全性和便利性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值