首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用ACR122连接CardService

如何用ACR122连接CardService
EN

Stack Overflow用户
提问于 2017-10-09 13:54:39
回答 1查看 839关注 0票数 1

我正在编写一个用于读取ePassport的程序()。对于访问,我使用库org.jmrtd。我应该在CardService.getInstance()中传输什么样的对象?

代码语言:javascript
复制
import net.sf.scuba.smartcards.CardService;
import net.sf.scuba.smartcards.CardServiceException;
import org.jmrtd.BACKeySpec;
import org.jmrtd.PassportService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestComponent {
    private static final Logger log = LoggerFactory.getLogger(MainApp.class);

    public static void main(String args[])  {

        try {
            CardService cs = CardService.getInstance(???????);
            PassportService ps = new PassportService(cs);
            ps.open();
            ps.sendSelectApplet(false);

            ps.sendSelectApplet(false);
            BACKeySpec bacKey = new BACKeySpec() {
                public String getDocumentNumber() {
                    return "xxxxxxxx";
                }
                public String getDateOfBirth() {
                    return "yyMMdd";
                }
                public String getDateOfExpiry() {
                    return "yyMMdd";
                }
            };
            ps.doBAC(bacKey);
            ps.close();

        } catch (CardServiceException e) {
            e.printStackTrace();
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-10-10 10:02:42

找到答案:

  1. 加上pom net.sf.scuba水肺-sc-j2se 0.13
  2. 进口net.sf.scuba.smartcards.TerminalCardService;
  3. CardTerminal terminal =TerminalFactory.getDefault().terminals().list().get(0); CardService cs = CardService.getInstance(terminal); PassportService ps = new PassportService(cs); ps.open();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46648186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档