PCSC4Java
0.2
Library PCSC for Java language.
|
00001 package fr.redbilled.pcscforjava; 00002 00003 import static fr.redbilled.pcscforjava.PCSCDefines.*; 00004 import java.util.List; 00005 import java.util.logging.Level; 00006 import java.util.logging.Logger; 00007 /*import javax.smartcardio.Card; 00008 import javax.smartcardio.CardException; 00009 import javax.smartcardio.CardTerminal; 00010 import javax.smartcardio.CardTerminals; 00011 import javax.smartcardio.TerminalFactory;*/ 00012 00013 /* 00014 * To change this template, choose Tools | Templates 00015 * and open the template in the editor. 00016 */ 00017 00022 public class NewMain { 00023 00027 public static void main(String[] args) throws InterruptedException 00028 { 00029 boolean _bTest = true; 00030 00031 System.out.println(TerminalFactory.getDefault()); 00032 CardTerminals _cardTerminals = TerminalFactory.getDefault().terminals(); 00033 List<CardTerminal> _list = null; 00034 while (_bTest) 00035 { 00036 try 00037 { 00038 if(_list == null) 00039 _list = _cardTerminals.list(); 00040 CardTerminal _cardTerminal = _list.get(1); 00041 00042 if (!_list.isEmpty()) { 00043 boolean _bIsPresent = _cardTerminal.isCardPresent(); 00044 //_bIsPresent = true; 00045 if (_bIsPresent) { 00046 Card _card = _cardTerminal.connect("*"); 00047 _card.getATR(); 00048 _card.getBasicChannel(); 00049 _card.getProtocol(); 00050 //_card.openLogicalChannel(); 00051 _card.transmitControlCommand(0x31 << 16 | (3400) << 2, new byte[0]); 00052 _card.beginExclusive(); 00053 _card.endExclusive(); 00054 _cardTerminal.isCardPresent(); 00055 _card.reconnect(SCARD_SHARE_SHARED, SCARD_RESET_CARD); 00056 _card.disconnect(SCARD_UNPOWER_CARD); 00057 } 00058 _cardTerminal.getName(); 00059 //_cardTerminal.waitForCardAbsent(0); 00060 _cardTerminal.waitForCardPresent(0); 00061 //_cardTerminals.waitForChange(0); 00062 } 00063 }catch (CardException ex) { } 00064 00065 Thread.sleep(200); 00066 } 00067 } 00068 }