package ma.release;
import android.R.integer;
import android.util.Log;
public class Jnifp {
String TAG = "ATAG";
Fingerprint mFingerprint= Fingerprint.getInstance();
static{
System.loadLibrary("mafprint");
}
/*
* Jni回调通知数据更新
*/
//notify
public void callback(Fingerprint fp){
Log.i(TAG, "====================callback======");
Log.i(TAG, "======callback == from jni==" +
" result="+fp.result+", " +"msg = "+fp.msg+" ,fid = "+fp.fid+" , ecode = "+fp.ecode);
switch (fp.msg) {
case Fingerprint.MSG_ENROLL:
switch (fp.ecode) {
case Fingerprint.FP_CHK_FULL:
mFingerprint.mEnrollCallback.onCaptureCompleted();
break;
case Fingerprint.FP_OK:
mFingerprint.mEnrollCallback.onProgress(fp.result);
if(fp.result == 0){
mFingerprint.mEnrollCallback.onEnrolled(fp.fid);
}
break;
case Fingerprint.FP_ENROLL_FAIL:
mFingerprint.mEnrollCallback.onEnrollmentFailed();
break;
case Fingerprint.FP_CHK_PART:
mFingerprint.mEnrollCallback.onCaptureFailed(Fingerprint.FP_CHK_PART);
break;
case Fingerprint.FP_TOUCH_TOO_SHORT:
mFingerprint.mEnrollCallback.onCaptureFailed(Fingerprint.FP_TOUCH_TOO_SHORT);
case Fingerprint.FP_DUPLI_FINGER:
mFingerprint.mEnrollCallback.onCaptureFailed(Fingerprint.FP_DUPLI_FINGER);
break;
case Fingerprint.FP_DUPLI_AREA:
mFingerprint.mEnrollCallback.onCaptureFailed(Fingerprint.FP_DUPLI_AREA);
break;
case Fingerprint.FP_CHK_UP:
mFingerprint.mEnrollCallback.onFingerRemoved();
break;
case Fingerprint.FP_CHK_DOWN:
break;
default:
break;
}
break;
case Fingerprint.MSG_MATCH:
Log.i(TAG, "=========Jnifp===MSG_MATCH======"+fp.ecode);
if(Fingerprint.FP_OK == fp.ecode){
mFingerprint.mAuthenticateCallback.onIdentified(fp.result);
}else if(Fingerprint.FP_MATCH_FAIL ==fp.ecode){
mFingerprint.mAuthenticateCallback.onCaptureFailed(Fingerprint.FP_MATCH_FAIL);
}else if(Fingerprint.FP_MATCH_NO_FINGER == fp.ecode){
mFingerprint.mAuthenticateCallback.onNoMatch();
}else if(Fingerprint.FP_CHK_UP == fp.ecode){
mFingerprint.mAuthenticateCallback.onFingerRemoved();
}else if(Fingerprint.FP_CHK_DOWN == fp.ecode){
}
break;
case Fingerprint.MSG_REMOVE:
Log.i(TAG, "=========Jnifp===MSG_REMOVE======");
break;
case Fingerprint.MSG_IDLE:
Log.i(TAG, "=========Jnifp===MSG_IDLE======");
break;
case Fingerprint.MAG_TEST_START:
Log.i(TAG, "=========Jnifp===MAG_TEST_START======");
break;
case Fingerprint.MAG_TEST_STOP:
Log.i(TAG, "=========Jnifp===MAG_TEST_STOP======");
break;
case Fingerprint.MSG_CALIBRATE:
Log.i(TAG, "=========Jnifp===MSG_CALIBRATE======");
break;
default:
break;
}
}
/*
* Jni 回调设置Fingerprint msg 的值
*/
public void setMsg(int msg){
mFingerprint.msg = msg;
}
/*
* Jni 回调设置Fingerprint fid 的值
*/
public void setFid(int fid){
mFingerprint.fid = fid;
}
/*
* Jni 回调设置Fingerprint result 的值
*/
public void setResult(int result){
mFingerprint.result = result;
}
/*
* Jni 回调设置Fingerprint ecode 的值
*/
public void setEcode(int ecode){
mFingerprint.ecode = ecode;
}
public static native int open(String path); //开启设备
public static native int close(); //关闭设备
public static native int calibrate(); //指纹校准
public static native int preEnroll(); //注册前
public static native int enroll(); //注册
public static native int postEnroll(); //注册结束
public static native int authenticate(); //匹配
public static native int stopAuthenticate(); //停止匹配
public static native int enumerate(int[] dat, int N);
public static native int remove(int fid); //移除指纹
public native void setNotify(); //初始化回调方法,在开启指纹功能时要设置
public static native int resetVolt(); //重新配置彩图电压
}