Android指纹识别的简单用法
来源:互联网 发布:ubuntu禁用nouveau 编辑:程序博客网 时间:2024/03/29 09:41
指纹识别
Android指纹识别是在Android6.0(API23)之后加入的新特性,接口都在andoid.hardware.fingterprint包下,其中总共只有4个类,下面是简单的介绍一下;
FingerprintManger:主要用来协调管理和访问指纹识别硬件设备;
new FingerprintManager.AuthenticationCallback:这是一个回调接口,当指纹认证后系统会回调这个接口通知指纹认证的结果;
new FingerprintManager.AuthenticationResult:这是一个表示认证结果的类,会在回调接口中以参数给出 ;
FingerprintManager.CryptoObject这是一个加密的对象类,用来保证认证的安全性。
需要添加的权限:
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
开启扫描接口只需要调用FingerprintManger的authenticate方法即可,但是在此之前我们还有一些东西要做;
获取FingerprintManger的引用对象 :
manager = (FingerprintManager) this.getSystemService(Context.FINGERPRINT_SERVICE);//获取钥匙管理者,后面用来获取用户是否开启安全模式 mKeyManager = (KeyguardManager) this.getSystemService(Context.KEYGUARD_SERVICE);
在Android中使用指纹识别必须要在设备处于安全模式,即开启了锁屏密码,否则是不可以使用的;
//这里是判断是否添加权限以及设备是否支持指纹识别if (ActivityCompat.checkSelfPermission(this, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, "没有指纹识别权限", Toast.LENGTH_SHORT).show();} //判断硬件是否支持指纹识别 if (!manager.isHardwareDetected()) { Toast.makeText(this, "没有指纹识别模块", Toast.LENGTH_SHORT).show();}//判断 是否开启锁屏密码 if (!mKeyManager.isKeyguardSecure()) { Toast.makeText(this, "没有开启锁屏密码", Toast.LENGTH_SHORT).show();} //判断是否有指纹录入,没有的话只能去设置里面自己去录入了 if (!manager.hasEnrolledFingerprints()) { Toast.makeText(this, "没有录入指纹", Toast.LENGTH_SHORT).show();}
到这里就可以开启扫描接口了,这里有一点,这里介绍一下authenticate方法中的参数;
第一个参数需要传入FingerprintManager.CryptoObject加密对象,但是在这里我是没有使用加密的,所以直接是设定的为null;
第二个参数是传入一个CancellationSignal对象,它提供了取消操作的功能,创建也很简单,使用 new CancellationSignal() 就可以了;
第三个参数可以不用理会,传入0就好(其实我也不知道具体作用 囧);
第四个参数就是回调接口了,就是上面提到的FingerprintManager.AuthenticationCallback()接口,提供识别成功失败等操作。
manager.authenticate(cryptoObject, mCancellationSignal, 0, new FingerprintManager.AuthenticationCallback() { @Override public void onAuthenticationError(int errorCode, CharSequence errString) { // 验证出错回调 指纹传感器会关闭一段时间,在下次调用authenticate时,会出现禁用期(时间依厂商不同30,1分都有) Toast.makeText(MainActivity.this, errString, Toast.LENGTH_SHORT).show(); showAuthenticationScreen(); } @Override public void onAuthenticationHelp(int helpCode, CharSequence helpString) { // 验证帮助回调 Toast.makeText(MainActivity.this, helpString, Toast.LENGTH_SHORT).show(); } @Override public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { Toast.makeText(MainActivity.this, "指纹识别成功", Toast.LENGTH_SHORT).show(); //识别成功关闭指纹验证 if (mCancellationSignal != null) { mCancellationSignal.cancel(); mCancellationSignal = null; } } @Override public void onAuthenticationFailed() { // 验证失败 指纹验证失败后,指纹传感器不会立即关闭指纹验证,系统会提供5次重试的机会,即调用5次onAuthenticationFailed后,才会调用onAuthenticationError Toast.makeText(MainActivity.this, "指纹识别失败", Toast.LENGTH_SHORT).show(); } }, null);
到这里就可以简单的使用指纹识别功能了,因为还没有涉及到指纹加密;关于加密已经有很多好的博客了,我也还在研究中。
- Demo下载
- Android指纹识别的简单用法
- Android 简单指纹识别
- iOS 简单的指纹识别
- android 高级之旅 (九) 指纹识别的简单使用
- 简单实现 Android M 指纹识别(附源码)
- 简单实现 Android M 指纹识别(附源码)
- iOS8 OCTouchID的简单使用 指纹识别
- swift Touch ID 的简单使用 指纹识别
- Android指纹识别
- Android 指纹识别
- Android指纹识别
- Android 指纹识别
- Android指纹识别
- Android下的指纹识别及登陆
- iOS 指纹识别简单使用
- ios-指纹识别简单介绍
- [Android]简单Spinner的用法
- android 简单tabHost的用法
- Oracle 索引
- TabLayout布局文件设置
- Oracle 各种常用函数
- 使用layer插件来定制tp5的消息提示页面
- Mysql批量插入数据脚本
- Android指纹识别的简单用法
- 表空间
- 【Linux-运维】已删除文件占用磁盘
- Apache服务器下无法隐藏tp5的入口文件index.php
- [公告]个人的未来计划
- fortify中Path Manipulation issues in Java 问题解决
- 计算机网络基础知识
- JAVA Swing 折叠菜单
- for套for两层循环数据