R
rfid_card
Gast
Guten Morgen,
ich moechte meine Kentnisse in Java erweitern und das Programmieren von RFID-Karten erlernen. In einem Buch zu diesem Thema von 13,56MHz-Karten habe ich folgendes Programm gefunden:
Leider tut es nicht ganz was es soll und gibt in Konsole folgendes aus:
Die Card UID wird nicht ausgegeben, warum?
Verwendet wird JRE 7.
Gibts es irgendwelche Besonderheiten?
ich moechte meine Kentnisse in Java erweitern und das Programmieren von RFID-Karten erlernen. In einem Buch zu diesem Thema von 13,56MHz-Karten habe ich folgendes Programm gefunden:
Java:
import java.util.List;
import javax.smartcardio.*;
public class SmartCardReader {
public static void main(String[] args) {
try{
// show the list of available terminals
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();
System.out.println("Terminals: " + terminals);
// get the first terminal
CardTerminal terminal = terminals.get(0);
// establish a connection with the card
Card card = terminal.connect("T=0");
System.out.println("card: " + card);
// get the ATR
ATR atr = card.getATR();
byte[] baAtr = atr.getBytes();
System.out.print("ATR = 0x");
for(int i = 0; i < baAtr.length; i++ ){
System.out.printf("%02X ",baAtr[i]);
}
byte[] cmdApduGetUid = new byte[]{(byte)0xFF, (byte)0xCA, (byte)0x00, (byte)0x00, (byte)0x00};
CardChannel channel = card.getBasicChannel();
ResponseAPDU respApdu = channel.transmit(new CommandAPDU(cmdApduGetUid));
if(respApdu.getSW1() == 0x90 && respApdu.getSW2() == 0x00){
byte[] baCardUid = respApdu.getData();
System.out.print("Card UID = 0x");
for(int i = 0; i < baCardUid.length; i++ ){
System.out.printf("%02X ", baCardUid [i]);
}
}
card.disconnect(false);
} catch (CardException e) {
e.printStackTrace();
}
}
}
Leider tut es nicht ganz was es soll und gibt in Konsole folgendes aus:
Code:
Terminals: [PC/SC terminal ACS ACR122 0]
card: PC/SC card in ACS ACR122 0, protocol T=0, state OK
ATR = 0x3B BE 95 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00
Die Card UID wird nicht ausgegeben, warum?
Verwendet wird JRE 7.
Gibts es irgendwelche Besonderheiten?