2011-10-04 1 views
0

Est-ce que ce code exige le Digital Persona One Touch RTE (Runtime Environment) pour travailler ?:Est-il possible de vérifier l'API Java dans Digital Persona One Touch sans RTE?

DPFPVerification verifier = DPFPGlobal.getVerificationFactory().createVerification(); 

Si oui, est-il une autre façon de vérifier numérique Persona SampleFeatures (sérialisés) contre un modèle numérique Persona (sérialisés) en utilisant seulement les fichiers JAR dpfp?

Motif: Nous prévoyons d'avoir notre vérificateur DPFP sur un service Web fourni par TIBCO.

Toute aide est grandement appréciée!

je reçois une exception Java JNI avec ce test exemple de code principal:

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); 
    } 

} 

Répondre

1

Non vous ne devriez pas besoin d'une sorte de RTE. Je sais que je devais installer le SDK One Touch car il exécute un service Windows appelé Analyse biométrique ou similaire. Le principal problème que je vois avec votre code est que:

DPFPVerificationResult result = null; 

result = verifier.verify(features, deserializedTemplate); 

doit être:

DPFP.Verification.Verification.Result result = new DPFP.Verification.Verification.Result(); 

verifier.verify(features, template, ref result); 

Au moins c'est ce que a mon code pour commencer à vérifier correctement. Je devais aussi corriger l'erreur d'un programmeur pour créer le FeatureSet qui doit être fait comme ceci:

DPFP.FeatureSet features = ExtractFeatures(Sample, DPFP.Processing.DataPurpose.Verification); 

J'ai un sentiment que vous utilisez un ancien SDK que je suis, mais peut-être que cela aidera certains.