该代码是否需要Digital Persona一键式RTE(运行时环境)才能运行?:
DPFPVerification verifier = DPFPGlobal.getVerificationFactory().createVerification();
如果是这样,是否还有另一种方法可以仅使用dpfp JAR对照数字角色模板(序列化)来验证数字角色样本特征(序列化)?
原因:我们计划在TIBCO提供的Web服务上安装DPFP验证程序。
任何帮助是极大的赞赏!
我得到了带有此示例测试主代码的Java JNI异常:
import com.digitalpersona.onetouch.DPFPFeatureSet;
import com.digitalpersona.onetouch.DPFPFeatureSetFactory;
import com.digitalpersona.onetouch.DPFPGlobal;
import com.digitalpersona.onetouch.DPFPTemplate;
import com.digitalpersona.onetouch.DPFPTemplateFactory;
import com.digitalpersona.onetouch.verification.DPFPVerification;
import com.digitalpersona.onetouch.verification.DPFPVerificationResult;
public class Main {
/**
* fingerScanTemplate is from WC DB
* sample is from the WS input parameters
*/
public boolean performVerification(byte[] fingerScanTemplate, byte[] sampleFeatures) {
DPFPTemplateFactory templateFactory = DPFPGlobal.getTemplateFactory();
DPFPFeatureSetFactory featureSetFactory = DPFPGlobal.getFeatureSetFactory();
DPFPVerification verifier = DPFPGlobal.getVerificationFactory().createVerification();
// Deserialize template & sampleFeature
DPFPTemplate deserializedTemplate = templateFactory.createTemplate(fingerScanTemplate);
DPFPFeatureSet features = featureSetFactory.createFeatureSet(sampleFeatures);
//Compare the feature set with the template, based on which finger was captured
DPFPVerificationResult result = null;
result = verifier.verify(features, deserializedTemplate);
return result != null && result.isVerified();
}
/**
* @param args
*/
public static void main(String[] args) {
new Main().performVerification(null, null);
}
}
最佳答案
不,您不需要某种RTE。我确实知道我必须安装One Touch SDK,因为它运行的是称为“生物特征扫描”或类似功能的Windows服务。我在您的代码中看到的主要问题是:
DPFPVerificationResult result = null;
result = verifier.verify(features, deserializedTemplate);
需要是:
DPFP.Verification.Verification.Result result = new DPFP.Verification.Verification.Result();
verifier.verify(features, template, ref result );
至少这就是使我的代码开始正确验证的原因。在创建FeatureSet时,我还必须纠正程序员的错误,需要这样做:
DPFP.FeatureSet features = ExtractFeatures(Sample, DPFP.Processing.DataPurpose.Verification);
我觉得您使用的是比我更旧的SDK,但这也许会有所帮助。
关于java - 可以在不带RTE的情况下运行Digital Persona One Touch中的Verification Java API吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7642970/