Android开启指纹验证
步骤:
- 首先要检测手机是否支持指纹识别的功能
- 其次要判断手机中是否已经录入了指纹
- 开启指纹验证
使用的类:
1.FingerprintManager:主要用来协调管理和访问指纹识别硬件设备
2.FingerprintManager.AuthenticationCallback这个一个callback接口,当指纹认证后系统会回调这个接口通知app认证的结果是什么
3.FingerprintManager.AuthenticationResult这是一个表示认证结果的类,会在回调接口中以参数给出
4.FingerprintManager.CryptoObject这是一个加密的对象类,用来保证认证的安全性,
Demo(一个页面有两个Button,一个是开启指纹验证,一个是取消指纹验证):
import android.support.v4.hardware.fingerprint.FingerprintManagerCompat;
import android.support.v4.os.CancellationSignal;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;import com.example.a_0102.mylearn.R;import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;/*** 1.FingerprintManager:主要用来协调管理和访问指纹识别硬件设备2.FingerprintManager.AuthenticationCallback这个一个callback接口,当指纹认证后系统会回调这个接口通知app认证的结果是什么3.FingerprintManager.AuthenticationResult这是一个表示认证结果的类,会在回调接口中以参数给出4.FingerprintManager.CryptoObject这是一个加密的对象类,用来保证认证的安全性,*/
public class FingerPrintActivity extends AppCompatActivity {private Button btnCheck;private Button btnCancel;private CancellationSignal cancellationSignal;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_finger_print);}/*** 第一个参数是用于通过指纹验证取出AndroidKeyStore中的key的对象。crypto这是一个加密类的对象,指纹扫描器会使用这个对象来判断认证结果的合法性。* 这个对象可以是null,但是这样的话,就意味这app无条件信任认证的结果,虽然从理论上这个过程可能被攻击,数据可以被篡改,这是app在这种情况下必须承担的风险。* 因此,建议这个参数不要置为null。这个类的实例化有点麻烦,主要使用javax的security接口实现,* 通常来讲,用来加密指纹扫描结果的机制就是一个Javax.Crypto.Cipher对象。Cipher对象本身会使用由应用调用Android keystore的API产生一个key来实现上面说道的保护功能** 第二个参数可以用来取消指纹验证,如果想手动关闭验证,可以调用该参数的cancel方法。** 第三个参数没什么意义,就是传0就好了。** 第四个参数最重要,由于指纹信息是存在系统硬件中的,app是不可以访问指纹信息的,所以每次验证的时候,系统会通过这个callback告诉你是否验证通过、验证失败等。* 第四个参数是handler,fingerprint中的消息都通过这个handler来传递消息,如果你传空,则默认创建一个在主线程上的handler来传递消息,没什么用,0传null好了。*/public void check(View view){FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.from(this);cancellationSignal = new CancellationSignal();//判断指纹功能是否可用if(fingerprintManager.isHardwareDetected()){//需要添加权限USE_FINGERPRINTLog.e("--------->","isHardwareDetected");//手机中是否有已经登记的指纹,即是否录入过指纹,如果没有需要先输入密码在录入指纹if(fingerprintManager.hasEnrolledFingerprints()){Log.e("--------->","hasEnrolledFingerprints");//启动指纹识别fingerprintManager.authenticate(null, 0, cancellationSignal, new FingerprintManagerCompat.AuthenticationCallback() {@Overridepublic void onAuthenticationError(int errMsgId, CharSequence errString) {super.onAuthenticationError(errMsgId, errString);Log.e("--------->","onAuthenticationError"+errMsgId+",errString:"+errString);}@Overridepublic void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {super.onAuthenticationHelp(helpMsgId, helpString);Log.e("--------->","onAuthenticationHelp"+helpMsgId+",helpString:"+helpString);}@Overridepublic void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result) {super.onAuthenticationSucceeded(result);Log.e("--------->","onAuthenticationSucceeded"+result);}@Overridepublic void onAuthenticationFailed() {super.onAuthenticationFailed();Log.e("--------->","onAuthenticationFailed");}},null);}}}public void cancel(View view){cancellationSignal.cancel();}
}
更多参考:
Android 6.0指纹识别App开发demo
Android开启指纹验证相关推荐
- android7.0 谷歌拼音,谷歌浏览器在Android 7.0及以上版本支持使用指纹验证进行无密码登录...
原标题:谷歌浏览器在Android 7.0及以上版本支持使用指纹验证进行无密码登录 来源:蓝点网 此前谷歌已经宣布与 FIDO 联盟达成合作关系并在安卓系统上调用指纹或面部识别等来登录某些支持的网站. ...
- Android中指纹识别的使用
/ 今日科技快讯 / 近日,微软斥资75亿美元收购了游戏发行商ZeniMax Media,后者旗下的游戏工作室曾推出<毁灭战士>以及<辐射>等知名游戏.这使得微软旗下的 ...
- 支付宝指纹服务器暂时用不了,解决支付宝指纹验证失效的问题
为了提升产品的竞争力,很多手机厂商都会不定期对经典型号提供固件升级服务.但是,很多手机在经历大版本的系统更新后总会出现一些Bug.以华为荣耀8为例,在更新EMUI5.0后,就容易出现支付宝指纹验证失效 ...
- 搭建直播带货平台,androidx指纹验证
搭建直播带货平台,androidx指纹验证实现的相关代码 androidsdk版本大于29之后,使用FingerprintManagerCompat进行指纹验证显示被废弃,FingerprintMan ...
- uni-app 指纹验证
次demo 在插件市场找的 链接地址: https://ext.dcloud.net.cn/plugin?id=358 <template><view><button ...
- Android 实现指纹识别demo
demo链接:https://download.csdn.net/download/meixi_android/10796468 1.指纹工具类: /*** 作者:created by meixi* ...
- 华为开启位置服务器,android 开启位置服务器
android 开启位置服务器 内容精选 换一换 请先在服务器所在区域购买充足的配额,具体操作请参见购买主机安全配额.购买配额后,请切换到配额所在区域对服务器开启防护.若您购买的是基础版/企业版/旗舰 ...
- Android N 指纹框架
1. 指纹框架UML 2. Fingerprint 2.1 Fingerprint数据流图 FingerprintManager API. 直接与应用程序交互的API,属于当前APP进程. 每个应用程 ...
- root后开启指纹支付,root之后不能用指纹支付
ROOT后,微信,支付宝指纹支付可以用吗 若是支付宝或微信支持手机的指纹支付功能的话,是可以开启的,不过请用先在系统设置的安全与密码中对指纹进行设置. 希望可以帮助到你~望采纳哦-如满意给点赞一个哦- ...
- 简单实现 Android M 指纹识别(附源码)
众所周知, Android阵营里的指纹兼容真可谓是一团糟, 每个厂家几乎都有一套自己的API, 直到Android M的出现, 才慢慢地走上正途. 那么今天我们就一起来探讨一下, Android M里 ...
最新文章
- find与findb
- Android Settings中显示自定义dialog
- python scrapy框架基如何实现多线程_Python多线程爬图Scrapy框架爬图
- Visual Studio 2005 中的新增安全性功能
- PLA算法(感知机)
- ValueError: Object arrays cannot be loaded when allow_pickle=False 报错解决
- 关系型数据库学习手记——初见倾心PostgreSQL、MySQL、SQLite、MongoDB
- oracle backup exec,利用Backup Exec 2010进行异机恢复测试
- 01 牛顿迭代公式
- Tomcat详细使用步骤
- Diana and Liana
- Benchmark 第一篇 了解Benchmark
- 基于stm32f407的智能风扇系统
- 迅雷投身区块链,两年投入3亿开发共享计算及区块链
- LeetCode 1374.生成每种字符都是奇数个的字符串
- NGINX源码之:目录导航
- 今夕何夕(蔡勒公式)
- 想进大厂?看这两位就够了——敖丙/冰河|寻找C站“宝藏”
- CSS设置边框阴影效果
- 华为面试题(西安研究所)
热门文章
- 江苏大学linux实验报告,正弦波振荡电路实验报告.doc
- 论文复现:Expressive Body Capture
- ubuntu下deactivate matlab的操作
- 回忆某图,如滔滔江水
- 《互联网的那些事之时代》第一回:大梦谁先觉,平生我自知
- C++描述 1113. 红与黑
- 如何使用分布式管理工具:Git
- QT 调试时出现 Unable to create a debugging engine.
- Unity3D 运用GL屏幕画图(阴阳师画符)
- 5月6阴阳师服务器维护,《阴阳师》手游5月6日维护更新公告