指纹识别在Android的开发中可以说是不怎么常见,但是Google对于生物识别缺失很重视,显示废弃了以往的Android6.0推出的FingerprintManager ,后针对Android9.0以上更新推出了BiometricPrompt。

Android指纹识别的应用场景其实还算挺多,只不过区别于ios系统,Android手机的硬件都是由各厂商生产的,手机档次也参差不齐,对于指纹开发来说还需要适配进行,显得比较麻烦,但针对于一些小型app开发或者是某个应用场景的特殊性以及某app指纹的必要性如指纹支付,指纹登录来说是非常重要的,接下来我们实现一个简单的指纹验证登录案例

1.引入依赖

implementation "androidx.biometric:biometric:1.1.0"

2.编写布局代码

编写main_layout.xml相关布局代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><Buttonandroid:id="@+id/but"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="指纹识别"android:layout_gravity="center"/></LinearLayout>

3.使用androidx BiometricPrompt实现指纹验证功能”

在BiometricPrompt的使用中,因为它是针对api29,Android10升级的生物识别,所以无需再判断Androd版本api,直接引入应用即可

public class MainActivity extends AppCompatActivity {private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initfinger();}private void initfinger() {button=findViewById(R.id.but);//指纹登录点击事件button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {BiometricPrompt.PromptInfo promptInfo=new BiometricPrompt.PromptInfo.Builder().setTitle("指纹登录").setDescription("用户指纹验证").setNegativeButtonText("取消").build();getprompt().authenticate(promptInfo);}});}//我这里写了一个方法,也可以不写,直接把这个里面的代码放在上面的点击事件里也是可以的private BiometricPrompt getprompt(){Executor executor = ContextCompat.getMainExecutor(this);BiometricPrompt.AuthenticationCallback callback=new BiometricPrompt.AuthenticationCallback() {//指纹验证错误@Overridepublic void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {super.onAuthenticationError(errorCode, errString);Toast.makeText(MainActivity.this,errString.toString(), Toast.LENGTH_SHORT).show();}//指纹验证成功@Overridepublic void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {super.onAuthenticationSucceeded(result);Toast.makeText(MainActivity.this, "指纹验证成功", Toast.LENGTH_SHORT).show();Intent intent = new Intent(MainActivity.this, MainActivity2.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(intent);}//指纹验证失败@Overridepublic void onAuthenticationFailed() {super.onAuthenticationFailed();Toast.makeText(MainActivity.this,"指纹验证失败", Toast.LENGTH_SHORT).show();}};BiometricPrompt biometricPrompt=new BiometricPrompt(this,executor,callback);return  biometricPrompt;}}

简单说明下,就是利用BiometricPrompt去进行指纹验证,在getprompt中监听回掉验证返回结果,进行页面的跳转。

4.最终效果图

[向前一小步]Android简单实现指纹识别登录相关推荐

  1. ThinkPad T410S 上 Ubuntu 14.04 实现指纹识别登录

    ThinkPad T410S 上 Ubuntu 14.04 实现指纹识别登录 1.添加PPA源 add-apt-repository ppa:fingerprint/fprint 2.更新包 apt- ...

  2. iOS 指纹识别登录功能实现

    简介 Touch ID是苹果公司的一种指纹识别技术,从iPhone 5s开始,早已为人们所熟知. Touch ID不存储用户的任何指纹图像,只保存代表指纹的数字字符.苹果公司提供Touch ID给第三 ...

  3. Android开发学习—指纹识别系统的原理与使用

    指纹识别是什么? 提到指纹识别我们就要先弄清楚什么事指纹,指纹为何能够做到区别性. 指纹,由于其具有终身不变性.唯一性和方便性,已几乎成为生物特征识别的代名词.指纹是指人的手指末端正面皮肤上凸凹不平产 ...

  4. Android中的指纹识别

    转载请注明出处:http://blog.csdn.net/wl9739/article/details/52444671 最近项目需要使用到指纹识别的功能,查阅了相关资料后,整理成此文. 指纹识别是在 ...

  5. Android 6.0指纹识别App开发demo

    在Android 6.0中google终于给android系统加上了指纹识别的支持,这个功能在iPhone上早就已经实现了,并且在很多厂商的定制的ROM中也都自己内部实现这个功能了,这个功能来的有点晚 ...

  6. Android 6.0 指纹识别功能学习(一)----阿冬专栏!!!

    转载自:http://www.cnblogs.com/changyuet/p/5535082.html 由于毕设需要设计增强的身份认证(生物特征认证方式),所以需要学习指纹识别相关的android6. ...

  7. Android下的指纹识别及登陆

    一.概述 Android下的指纹识别是在Android6.0后添加的功能,因此,在实现的时候要判断用户机是否支持,然后对于开发来说,使用场景有两种,分别是本地识别和跟服务器交互: 1.本地识别:在本地 ...

  8. Android FingerPrint之指纹识别

    目前, 市面上的手机基本都支持了指纹解锁功能,甚至已经支持面部识别解锁,及虹膜识别了,但是在我们的App中却是很少有指纹登录的,包括一些金融类软件,这是因为,指纹识别是在Android 6.0 以上才 ...

  9. Android 的简易指纹识别

    一.第一步 ​ 1.第一步首先在build.gradle中导入咱们的指纹识别依赖. dependencies {implementation 'androidx.appcompat:appcompat ...

最新文章

  1. Python 列表(List)操作方法详解
  2. 从阿里孵化钉钉谈起,大公司内部创业到底有多难?
  3. maven设置socks代理
  4. APP设计干货|切图基本知识点规范
  5. 简单的描述关于开发部署产生401,500的错误处理
  6. SecureCRT key登录linux ssh设置
  7. mybatis 批量增加 Parameter '__frch_item_0' not found. Available parameters are [lis
  8. 基于RSSI及KNN算法的WiFi室内定位实现
  9. positionViewHolder{a1bbfa3 position=2 id=-1, oldPos=-1, pLpos:-1 no parent}
  10. 如何下载微博、B站(哔哩哔哩)视频到电脑
  11. 《美国职业橄榄球大联盟》:NFL·王牌四分卫
  12. cogs1570 KMP hash
  13. 使用CXF框架Jax-rs规范编写WebService服务端
  14. ANDROID下获取IMSI及IMEI码
  15. 虚拟服务器有没有加入bt端口,三分钟学会架设BT服务器
  16. STM32学习【2】STM32F103C8T6串口2USART2程序
  17. Test OpenStack SRIOV (by quqi99)
  18. 转行学什么就业前景好
  19. cad-pol:正多边形命令学习
  20. Web安全工具—Nmap(持续更新)

热门文章

  1. 微信小程序|做一个底部评论视图
  2. MT6738/MT6738T芯片资料,MT6738处理器功能介绍
  3. 关于Python可视化Dash工具—plotly基本图形
  4. echart x轴自定义间距
  5. 数字逻辑综合工具-DC-04 ——怎样增加时序约束(Timing Constraints)
  6. [渝粤教育] 西南科技大学 物流系统规划与设计 在线考试复习资料
  7. 2020年南京社保减免优惠政策(2-12月汇总)
  8. 嘘!捡漏啦!1919元=高性能电脑,满额+500京东卡...
  9. Nodejs全方位入门
  10. mq消费的几种方式(从消费者角度出发)