获取手机指纹库指纹信息
来源:互联网 发布:ati hd 4850 mac 编辑:程序博客网 时间:2024/04/30 07:43
本Demo 所示用测试机为华为KIW—UL00
系统版本:Android 6.0.1, API 23
参考谷歌官方文档可知,公开的指纹操作类只有一个FingerprintManager。且暴露的方法有限。具体如下图。
故,通过公开的方法想获得指纹库具体信息是不可能的。
参阅FingerprintManager可知,其内部指纹信息类被隐藏了。具体如下图:
所以,通过反射获得其内部数据。
具体步骤如下:
Step 1:获得指纹管理类
fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);
Step2:通过反射获取指纹库具体信息
参阅FingerprintManager可知(见下图),在其内部只有一个方法返回值为List,即可取到Fragerprint类信息,故通过反射取到此方法,然后对此方法进行赋值。
//获取方法
Method method=
FingerprintManager.class.getDeclaredMethod(“getEnrolledFingerprints”);
//对obj进行赋值
Object obj = method.invoke(fingerprintManager);
//对obj进行非空判断,然后对android.hardware.fingerprint.Fingerprint类进行反射,得到具体方法(android.hardware.fingerprint.Fingerprint类部分源码见下图)
if (obj != null) { Class<?> clazz = Class.forName("android.hardware.fingerprint.Fingerprint"); Method getName = clazz.getDeclaredMethod("getName"); Method getFingerId = clazz.getDeclaredMethod("getFingerId"); Method getGroupId = clazz.getDeclaredMethod("getGroupId"); Method getDeviceId = clazz.getDeclaredMethod("getDeviceId");
//因为我们事先知道Object是List,故对其进行向下转型,对其进行遍历,item空了就说明遍历完毕,通过continue关键字,跳出循环。
for (int i = 0; i < ((List) obj).size(); i++) { Object item = ((List) obj).get(i); if (null == item) { continue; }
//通过log日志对指纹库具体信息进行输出。
Log.e(TAG,
“指纹name:”+getName.invoke(item)+
” 指纹库ID:”+getGroupId.invoke(item)+
“指纹ID:”+getFingerId.invoke(item)+
“设备Id:”+getDeviceId.invoke(item));
注:未经授权,不得转载!!!
- 获取手机指纹库指纹信息
- 信息指纹
- 信息指纹
- 信息指纹
- 指纹
- 苹果手机指纹验证
- 信息指纹概述
- 信息指纹及其应用
- 取硬件指纹信息
- 信息指纹及其应用
- 信息指纹及其应用
- [Java]读取.RSA密钥信息及获取KEYSTORE指纹信息
- [Java]读取.RSA密钥信息及获取KEYSTORE指纹信息
- JAVA读取.RSA密钥信息及获取KEYSTORE指纹信息
- 获取cms指纹
- Android获取SHA1指纹
- 获取浏览器指纹指引
- 获取apk证书指纹
- 读(深入浅出ES6)系列笔记(三)
- CFtpConnection之CreateDirectory、GetCurrentDirectory、SetCurrentDirectory的使用
- 常用排序算法总结(一)
- vue.js学习01之语法认识
- Linux C 进程间的管道通信
- 获取手机指纹库指纹信息
- JS之返回指定位置字符的charAt方法
- Bootstrap 3.3.7学习笔记7
- FragmentTabHost屏幕切换时Fragment显示空白
- 前端笔试题
- ZOJ--1057:Undercut
- Extjs 扩展Htmleditor,支持 图片上传 文件上传 插入flash 插入多媒体 插入层 插入横线等功能
- update 时遇到 Could not get lock /var/lib/apt/lock 解决办法
- 如何快速转载CSDN中的博客