android6.0指纹开发

android M指纹的资料太少,经过一段时间阅读原生android代码,写了以下例子,贡献出来给需要帮助的人。

创新互联公司长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为库尔勒企业提供专业的成都网站设计、网站制作,库尔勒网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

以下内容基于64位的高通CPU,搭载fpc1020芯片,此部分代码在原生android上做了更改,以应付工厂指纹的测试。原生android指纹录入需要采集10次(因不同的芯片而定)。

代码简单说明:

    1.FingerPrintEnrollBase类:

        重要的是 

public interface Listener {

        void onEnrollmentHelp(CharSequence helpString);

        void onEnrollmentError(int errMsgId, CharSequence errString);

        void onEnrollmentProgressChange(int steps, int remaining);

    }

这个接口。

        1)onEnrollmentHelp函数:是下层返回的指纹操作帮助信息。

        2)onEnrollmentError函数是下层返回的错误信息,errMsgId是错误信息类型,其中1表示指纹硬件不可用,3表示超时,5表示操作已取消。errString是errMsgId对应的文字信息,有需要的自己实验就知道了。

        3)onEnrollmentProgressChange()函数是显示当前指纹的采集情况,steps:总共需要录入多少次;remaining是剩余多少次,我在此函数中有打印Log。

附件zip包中的FingerPrintActivity是主Activity类,FingerPrintEnrollBase是指纹Base类。

需要特别说明的是,在FingerPrintEnrollBase类中有一句:private byte[] mToken = new byte[69];这个数组正常情况是通过输入密码后经由framework层向hal层申请的,我这里为了省去验证那一块的代码,通过sizeof(hw_auth_token_t)计算出来的为69,需要的请依此计算。我在代码里实验过,此数组如果不是69(在64位CPU上),将直接导致程序crach!

附件图片是fpc指纹的采集流程,仅作为参考。有需要selftest或checkboard test的请邮件我。

附件:http://down.51cto.com/data/2367765

本文题目:android6.0指纹开发
分享地址:http://scyanting.com/article/pojihe.html