[向前一小步]Android简单实现指纹识别登录
指纹识别在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简单实现指纹识别登录相关推荐
- ThinkPad T410S 上 Ubuntu 14.04 实现指纹识别登录
ThinkPad T410S 上 Ubuntu 14.04 实现指纹识别登录 1.添加PPA源 add-apt-repository ppa:fingerprint/fprint 2.更新包 apt- ...
- iOS 指纹识别登录功能实现
简介 Touch ID是苹果公司的一种指纹识别技术,从iPhone 5s开始,早已为人们所熟知. Touch ID不存储用户的任何指纹图像,只保存代表指纹的数字字符.苹果公司提供Touch ID给第三 ...
- Android开发学习—指纹识别系统的原理与使用
指纹识别是什么? 提到指纹识别我们就要先弄清楚什么事指纹,指纹为何能够做到区别性. 指纹,由于其具有终身不变性.唯一性和方便性,已几乎成为生物特征识别的代名词.指纹是指人的手指末端正面皮肤上凸凹不平产 ...
- Android中的指纹识别
转载请注明出处:http://blog.csdn.net/wl9739/article/details/52444671 最近项目需要使用到指纹识别的功能,查阅了相关资料后,整理成此文. 指纹识别是在 ...
- Android 6.0指纹识别App开发demo
在Android 6.0中google终于给android系统加上了指纹识别的支持,这个功能在iPhone上早就已经实现了,并且在很多厂商的定制的ROM中也都自己内部实现这个功能了,这个功能来的有点晚 ...
- Android 6.0 指纹识别功能学习(一)----阿冬专栏!!!
转载自:http://www.cnblogs.com/changyuet/p/5535082.html 由于毕设需要设计增强的身份认证(生物特征认证方式),所以需要学习指纹识别相关的android6. ...
- Android下的指纹识别及登陆
一.概述 Android下的指纹识别是在Android6.0后添加的功能,因此,在实现的时候要判断用户机是否支持,然后对于开发来说,使用场景有两种,分别是本地识别和跟服务器交互: 1.本地识别:在本地 ...
- Android FingerPrint之指纹识别
目前, 市面上的手机基本都支持了指纹解锁功能,甚至已经支持面部识别解锁,及虹膜识别了,但是在我们的App中却是很少有指纹登录的,包括一些金融类软件,这是因为,指纹识别是在Android 6.0 以上才 ...
- Android 的简易指纹识别
一.第一步 1.第一步首先在build.gradle中导入咱们的指纹识别依赖. dependencies {implementation 'androidx.appcompat:appcompat ...
最新文章
- Python 列表(List)操作方法详解
- 从阿里孵化钉钉谈起,大公司内部创业到底有多难?
- maven设置socks代理
- APP设计干货|切图基本知识点规范
- 简单的描述关于开发部署产生401,500的错误处理
- SecureCRT key登录linux ssh设置
- mybatis 批量增加 Parameter '__frch_item_0' not found. Available parameters are [lis
- 基于RSSI及KNN算法的WiFi室内定位实现
- positionViewHolder{a1bbfa3 position=2 id=-1, oldPos=-1, pLpos:-1 no parent}
- 如何下载微博、B站(哔哩哔哩)视频到电脑
- 《美国职业橄榄球大联盟》:NFL·王牌四分卫
- cogs1570 KMP hash
- 使用CXF框架Jax-rs规范编写WebService服务端
- ANDROID下获取IMSI及IMEI码
- 虚拟服务器有没有加入bt端口,三分钟学会架设BT服务器
- STM32学习【2】STM32F103C8T6串口2USART2程序
- Test OpenStack SRIOV (by quqi99)
- 转行学什么就业前景好
- cad-pol:正多边形命令学习
- Web安全工具—Nmap(持续更新)
热门文章
- 微信小程序|做一个底部评论视图
- MT6738/MT6738T芯片资料,MT6738处理器功能介绍
- 关于Python可视化Dash工具—plotly基本图形
- echart x轴自定义间距
- 数字逻辑综合工具-DC-04 ——怎样增加时序约束(Timing Constraints)
- [渝粤教育] 西南科技大学 物流系统规划与设计 在线考试复习资料
- 2020年南京社保减免优惠政策(2-12月汇总)
- 嘘!捡漏啦!1919元=高性能电脑,满额+500京东卡...
- Nodejs全方位入门
- mq消费的几种方式(从消费者角度出发)