我正在编写一个用于读取ePassport的程序()。对于访问,我使用库org.jmrtd。我应该在CardService.getInstance()中传输什么样的对象?
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();
}
}
}发布于 2017-10-10 10:02:42
找到答案:
CardTerminal terminal =TerminalFactory.getDefault().terminals().list().get(0); CardService cs = CardService.getInstance(terminal); PassportService ps = new PassportService(cs); ps.open();https://stackoverflow.com/questions/46648186
复制相似问题