身份证阅读器调试以及sdk

1.主要是找到身份证阅读器对应的开发包

2.按照开发包的指示,安装驱动,不同的开发方式,要把dll文件放到不同的地方,和计算机的系统也有关系,我当时系统是64位,把dll文件放到C:\Windows\SysWOW64或(C:\Windows\System32下);

3.sdk也运行了,但是还是会出现异常,JNative library not loaded, sorry !。最后安装了一个32位的jdk,解决了这个问题。

4.JNative读取dll文件。

5.最后还要注意dll文件,检查放到系统里面的文件名和你读取的是否一致,区分大小写。这就是我的开发经历吧,如有不对的地方欢迎交流指正。

6.部分示例代码,从网上找的下载地址:http://www.idukaqi.com/service/huashi/178.html

public static int CVR_InitComm(int Port) throws NativeException, IllegalAccessException, UnsupportedEncodingException
{JNative n = null;
      try
      {n = new JNative("termb.dll", "CVR_InitComm");
         n.setRetVal(Type.INT); // 指定返回参数的类型
         n.setParameter(0, Port);
         n.invoke(); // 调用方法
         return Integer.parseInt(n.getRetVal());
      }finally
      {}}public  int GetPeopleName() throws NativeException, IllegalAccessException
{JNative n = null;
      try
      {n = new JNative("termb.dll", "GetPeopleName");
         n.setRetVal(Type.INT); // 指定返回参数的类型
         Pointer a = new Pointer(MemoryBlockFactory.createMemoryBlock(4*10));
         Pointer b = new Pointer(MemoryBlockFactory.createMemoryBlock(4*30));
         n.setParameter(0,b);
         n.setParameter(1,a);
         n.invoke();
         byte[] by = new byte[120];
         by = b.getMemory();
        try
        {strTmp = new String(by,"gb2312");
        }catch (UnsupportedEncodingException ex){Logger.getLogger(CVR100DemoView.class.getName()).log(Level.SEVERE, null, ex);
        }byte[] bt = new byte[40];
        bt = a.getMemory();
         len = a.getAsInt(0);
         a.dispose();
         b.dispose();
         return Integer.parseInt(n.getRetVal());
      }finally
      {}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部