Android生物识别 指纹识别面部识别,生物认证Biometric的简单使用
Android生物识别 指纹识别面部识别,生物认证Biometric的简单使用
生物认证Biometric
很多APP都要求免登录,银行什么的,要求指纹登录,密码登录,再不就是手势登录。
Biometric是谷歌官方提供的生物识别验证类库,能调用包括目前Android设备上搭载的指纹、人脸、虹膜等系统级的生物认证。(目前大多数的国内定制ROM可能因为安全问题,仅支持指纹)
当然,我测试了一下,一般的手机只能指纹登录。
这是因为Android10系统才开放面部识别
所以你的手机就算有面部解锁功能,调用这个Biometric库还是会调出指纹解锁。
还有一些手机即使是Android10也无法调用面部解锁,可能与厂商是否开放面部解锁功能有关。依赖
dependencies {implementation 'androidx.biometric:biometric:1.0.0-beta01'}
主布巨代码
public class MainActivity extends AppCompatActivity {private Handler handler = new Handler();private Executor executor = new Executor() {@Overridepublic void execute(Runnable command) {handler.post(command);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button biometricLoginButton = findViewById(R.id.biometric_login);BiometricManager biometricManager = BiometricManager.from(this);switch (biometricManager.canAuthenticate()) {case BiometricManager.BIOMETRIC_SUCCESS:Toast.makeText(this, "应用可以进行生物识别技术进行身份验证", Toast.LENGTH_SHORT).show();biometricLoginButton.setOnClickListener(view -> showBiometricPrompt());break;case BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE:Toast.makeText(this, "该设备上没有搭载可用的生物特征功能", Toast.LENGTH_SHORT).show();break;case BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE:Toast.makeText(this, "生物识别功能当前不可用", Toast.LENGTH_SHORT).show();break;case BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED:Toast.makeText(this, "用户没有录入生物识别数据", Toast.LENGTH_SHORT).show();break;}}//生物认证的settingprivate void showBiometricPrompt() {BiometricPrompt.PromptInfo promptInfo =new BiometricPrompt.PromptInfo.Builder().setTitle("Biometric login for my app") //设置大标题.setSubtitle("Log in using your biometric credential") // 设置标题下的提示.setNegativeButtonText("Cancel") //设置取消按钮.build();//需要提供的参数callbackBiometricPrompt biometricPrompt = new BiometricPrompt(MainActivity.this,executor, new BiometricPrompt.AuthenticationCallback() {//各种异常的回调@Overridepublic void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {super.onAuthenticationError(errorCode, errString);Toast.makeText(getApplicationContext(),"Authentication error: " + errString, Toast.LENGTH_SHORT).show();}//认证成功的回调@Overridepublic void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {super.onAuthenticationSucceeded(result);BiometricPrompt.CryptoObject authenticatedCryptoObject =result.getCryptoObject();// User has verified the signature, cipher, or message// authentication code (MAC) associated with the crypto object,// so you can use it in your app's crypto-driven workflows.}//认证失败的回调@Overridepublic void onAuthenticationFailed() {super.onAuthenticationFailed();Toast.makeText(getApplicationContext(), "Authentication failed",Toast.LENGTH_SHORT).show();}});// 显示认证对话框biometricPrompt.authenticate(promptInfo);}
}
这样一个简单的生物识别就ok了
效果图不方便贴,反正我手机只能调出指纹登录
Android生物识别 指纹识别面部识别,生物认证Biometric的简单使用相关推荐
- Android开发学习—指纹识别系统的原理与使用
指纹识别是什么? 提到指纹识别我们就要先弄清楚什么事指纹,指纹为何能够做到区别性. 指纹,由于其具有终身不变性.唯一性和方便性,已几乎成为生物特征识别的代名词.指纹是指人的手指末端正面皮肤上凸凹不平产 ...
- Android 6.0 指纹识别功能学习(一)----阿冬专栏!!!
转载自:http://www.cnblogs.com/changyuet/p/5535082.html 由于毕设需要设计增强的身份认证(生物特征认证方式),所以需要学习指纹识别相关的android6. ...
- Android 6.0指纹识别App开发demo
在Android 6.0中google终于给android系统加上了指纹识别的支持,这个功能在iPhone上早就已经实现了,并且在很多厂商的定制的ROM中也都自己内部实现这个功能了,这个功能来的有点晚 ...
- Android FingerPrint之指纹识别
目前, 市面上的手机基本都支持了指纹解锁功能,甚至已经支持面部识别解锁,及虹膜识别了,但是在我们的App中却是很少有指纹登录的,包括一些金融类软件,这是因为,指纹识别是在Android 6.0 以上才 ...
- “关于Android系统的指纹识别安全性”文章引来的讨论
本文的目的:真实客观分析来自迈瑞微的这篇文章中提及的各个观点 文章标题:指纹识别离安全支付还有多远? 转发地址:http://news.cecb2b.com/info/20160105/3296661 ...
- Android中的指纹识别
转载请注明出处:http://blog.csdn.net/wl9739/article/details/52444671 最近项目需要使用到指纹识别的功能,查阅了相关资料后,整理成此文. 指纹识别是在 ...
- Android 的简易指纹识别
一.第一步 1.第一步首先在build.gradle中导入咱们的指纹识别依赖. dependencies {implementation 'androidx.appcompat:appcompat ...
- Android下的指纹识别及登陆
一.概述 Android下的指纹识别是在Android6.0后添加的功能,因此,在实现的时候要判断用户机是否支持,然后对于开发来说,使用场景有两种,分别是本地识别和跟服务器交互: 1.本地识别:在本地 ...
- Android人脸与指纹识别
基础人脸识别模块 添加依赖 请添加基本依赖,不要添加 ktx 版本的依赖,因为他需要 API33 及以上才可以使用! implementation 'androidx.biometric:biomet ...
最新文章
- 2:0!谷歌 AI “AlphaStar“ 虐杀职业星际玩家
- Operation category READ is not supported in state standby
- oracle脱机备份文件拒绝访问,如何解决备份文件夹拒绝访问问题
- html判断表单是否为空,layui判断表单是否为空
- 同方知网软件_国产精品软件天若OCR:支持图像识别/自动翻译/公式识别等
- [java] 找出字符串中出现最多的字符和出现的次数
- pandas 空字符串与na区别_python从安装到数据分析应用高手 Pandas处理文本数据(一)...
- flask前端优化:css/js/html压缩
- AT24C02、DS1302、DS18B20等中文手册
- 在word中无法使用输入法解决方法
- unity3d kinect体感互动解决方案——2D体感换装
- excel筛选,排序
- Java实验1-1【超市购物小程序】
- ap设置 维盟660g_WayOS|路由器WAN口数设置详细教程
- 详细介绍GPIO、I2C、SPI通讯原理以及物理层原理
- 冯小刚回应质疑:中国没大师 谁都别装!
- 精准授时,GPS北斗卫星授时同步时钟系统的天花板
- java实现短信接口
- qq空间 for android,手机QQ空间Android新版发布 支持widget
- 使用PDF分割器将PDF拆分为多个文档
热门文章
- 《从面试别人想到的》----泡论坛看到的,写的很有见地,适合我们刚毕业的和毕业一段时间的孩子。...
- 社交应用如何防范“虚假流量”?安全检测服务帮你快速识别
- mysql memory 索引_理解MySQL——索引与优化
- 平遥电影宫春节上线儿童欢乐市集 打造文旅复合空间
- 黑白手绘论文答辩PPT模板
- Android 应用权限导致系统无法开机
- 随机投点法-----------7-1 椭圆的面积 (100 分)
- plt画图那些事(配色+上下标)
- iOS dispatch_after
- python modf() 函数