App接入Android指纹识别
创作时间:
作者:
@小白创作中心
App接入Android指纹识别
引用
CSDN
1.
https://blog.csdn.net/chuyouyinghe/article/details/136814887
Biometric Authentication 是一种使用面部或指纹识别进行用户认证的方式,这是保护敏感信息的方法之一。它对于需要用户每次打开应用都要进行认证的金融和医疗健康应用非常重要。
1. 声明依赖项
您可以在此处检查最新的版本发布情况。
dependencies {
implementation("androidx.biometric:biometric:1.1.0")
...
}
2. 选择认证类型
- BIOMETRIC_STRONG
— Class 3 生物认证,了解更多详细信息请点击这里。 - BIOMETRIC_WEAK
— Class 2 生物认证,了解更多详细信息请点击这里。 - DEVICE_CREDENTIAL
— 用户需输入屏幕锁定的 PIN/图案/密码
对于 STRONG 和 WEAK 之间的区别,我不会详细展开,因为这将是一个过长的话题。您还可以同时选择多种类型:
BIOMETRIC_STRONG 或 DEVICE_CREDENTIAL。
3. 检查认证是否可用
双重检查导入项,确保您正在使用 androidx.biometric.*。在下面的示例中,我将使用 BIOMETRIC_STRONG。某些设备可能没有生物认证功能。以下是四种可能性:
val biometricManager = BiometricManager.from(this)
when (biometricManager.canAuthenticate(BIOMETRIC_STRONG)) {
BiometricManager.BIOMETRIC_SUCCESS -> {
// 使用生物特征进行认证
}
BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE -> {
// 缺少生物特征硬件
}
BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE -> {
// 当前无法使用生物特征
}
BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED -> {
// 用户未注册您的应用所支持的生物特征认证,请提示用户进行注册
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val enrollIntent =
Intent(Settings.ACTION_BIOMETRIC_ENROLL).apply {
putExtra(
Settings.EXTRA_BIOMETRIC_AUTHENTICATORS_ALLOWED,
BIOMETRIC_STRONG or DEVICE_CREDENTIAL
)
}
startActivityForResult(enrollIntent, REQUEST_CODE)
}
}
}
4. 创建提示框
如果我们收到 BIOMETRIC_SUCCESS,我们可以使用生物认证对话框提示用户进行认证。我们需要两个东西:
- 名为 PromptInfo 的对话框
private fun createPromptInfo(): BiometricPrompt.PromptInfo =
BiometricPrompt.PromptInfo.Builder()
.setTitle("使用生物特征进行认证")
.setAllowedAuthenticators(BIOMETRIC_STRONG)
.setConfirmationRequired(false)
.setNegativeButtonText("使用密码登录")
.build()
- 带有回调的提示框
private fun createBiometricPrompt(): BiometricPrompt {
val callback = object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
if (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {
// 如果您在提示对话框中添加了取消按钮
}
}
override fun onAuthenticationFailed() {
super.onAuthenticationFailed()
// 认证失败,原因未知
}
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)
// 认证成功!
}
}
val executor = ContextCompat.getMainExecutor(this)
return BiometricPrompt(this, executor, callback)
}
5. 显示提示框
现在我们已经准备好了,可以显示提示框了:
BiometricManager.BIOMETRIC_SUCCESS -> {
val prompt = createBiometricPrompt()
prompt.authenticate(createPromptInfo())
}
如果用户成功进行认证,回调中的 onAuthenticationSucceeded 将被调用。
附加功能:在模拟器上调试生物特征
如果您想在模拟器上调试生物特征,您需要添加一个锁屏和指纹。当您尝试使用生物特征解锁时,系统会提示您添加锁屏和指纹。您可以按照下面的图像中的步骤在模拟器上测试指纹功能:
How to debug Fingerprints on Emulator
通过以上步骤,您可以使用 Android 生物认证管理来保护敏感信息,并使用户能够方便而安全地进行认证。这对于金融和医疗健康应用来说尤为重要。希望本博客能帮助您深入了解 Android 生物认证管理的技术实现。
参考
热门推荐
浅表性胃炎伴糜烂存在癌变风险,专家建议定期检查
十招应对慢性病身心困扰,提升患者生活质量
特朗普推出加密货币暴涨,专家提醒谨防投资陷阱
特朗普推出个人Meme币TRUMP,24小时暴涨4万倍引发市场巨震
古代,从北京到云南要走多久,走什么路线?
李树建携豫剧团访日演出,经典剧目唤起侨胞乡情
豫剧进沪一年演出60场,李树建团队发布新年发展蓝图
豫剧“入海”:李树建团队完成上海28场演出,明年将转战亚洲大厦
阿勒泰第18届乌伦古湖冬捕节开幕,传统民俗与冰雪体验吸引5.9万游客
8-10月最佳!新疆阿勒泰9大景区火车直达攻略
李树建沉浸式豫剧上海收官,明年将驻演北京上海
国庆期间豫剧登台大阪,李树建团队获华侨华人点赞
李树建团队沉浸式豫剧上海收官,2025年将拓展北京市场
构建数据驱动团队:15维度能力提升指南
掌握数据驱动决策:8个步骤提升企业决策力
工伤烧伤赔偿标准及申报流程详解
一文读懂C类驾照:从C1到C6准驾车型全攻略
面部瘢痕超2cm2即算伤残,详解烧伤伤残鉴定与赔偿
冰箱温度控制指南:7档位调节与四季适宜温度
冷藏展示柜温度调节:不同商品需不同温度,一文掌握
猪大骨炖汤:一道养生佳肴的制作与营养价值全解析
35米预应力T梁桥施工关键技术揭秘
35米预应力混凝土T梁桥设计优化研究
800万像素(探索高分辨率摄影世界的新境界)
残疾人健康计划书
许鞍华新片《男人四十》:中年教师的婚外情与自我救赎
米东区:巧手“按亮”幸福生活
TRUMP币暴涨超24000%,专家解析投资策略与风险
魔兽争霸3人族兵种详解:15个单位特性与实战运用
魔兽争霸3:开创英雄时代的RTS游戏,奠定MOBA鼻祖地位