神盾的FingerPrint方案
在Java层,神盾主要提供如下几个包:
egistec.fingerauth.api.FPAuthListeners;
egistec.fingerauth.api.FPAuthListeners.EnrollListener;
egistec.fingerauth.api.FPAuthListeners.EnrollMapProgressListener;
egistec.fingerauth.api.FPAuthListeners.StatusListener;
egistec.fingerauth.api.SettingLib;
具体使用方式,
1) 通过生成SettingLib对象来外提供指纹相关功能
mLib = new SettingLib(Context);
2) 设置3个常用的Listener,
FPAuthListeners.EnrollListener // 指纹录入阶段得到notify,其中的方法会被回调
FPAuthListeners.StatusListener // 当指纹传感器的状态发生改变,会被notify
FPAuthListeners.EnrollMapProgressListener // 指纹录入(这里分10个阶段),每个阶段录入完成会调用一次
具体如下:
FPAuthListeners.EnrollListener() {
public void onFail() {
}
public void onProgress() {
}
public void onDoubleCheckedFail() {
}
public void onSuccess() {
}
}
FPAuthListeners.StatusListener() {
public void onBadImage(int status) {
}
public void onFingerFetch() {
}
public void onFingerImageGetted() {
}
public void onServiceConnected() {
}
public void onServiceDisConnected() {
}
public void onStatus(int status) {
}
public void onUserAbort() {
}
}
FPAuthListeners.EnrollMapProgressListener() {
public void onEnrollMapProgress(int progress) {
}
}
3) 绑定到 SettingLib,mLib.bind();
4) 结束服务:
mLib.abort();
mLib.disconnectDevice();
mLib.cleanListeners();
mLib.unbind();
5)典型的功能调用:
A. enroll fingerprint:指纹录入
mLib.setStatusListener(new FPAuthListeners.StatusListener() {
public void onServiceConnected() {
mLib.enroll("FP_0" + mFingerIndex);
}
});
lib.bind();
B. delete fingerprint:删除指纹模板
lib.setStatusListener(new FPAuthListeners.StatusListener() {
public void onServiceConnected() {
boolean result = lib.deleteFeature(uid);
}
});
lib.bind();
C. remove Calibration:指纹校准
lib.setStatusListener(new FPAuthListeners.StatusListener() {
public void onServiceConnected() {
lib.connectDevice();
lib.removeCalibration();
lib.disconnectDevice();
}
});
lib.bind();
6. 对于指纹数据的保存,由神盾完成,我们无法看到数据的采集保存过程;我们只在Settings.System中保存了以 fingerprint_* 为key的一行记录,值为1表示DATA_EXSIT = 1,数据存在。
指纹的名称类似: fingerprint_title*