|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Class Summary | |
|---|---|
| Error | |
| Reader | |
It provides classes to communicating with AlcorMicro smart card reader on Android 3.1 or above.
To create Reader object
Object HardwareInterface is needed when constructing a class Reader,
you should create and initial 'HardwareInterface myDev' before create Reader
Reader myReader
try {
mReader = new Reader(myDev);
}
catch(Exception e){
e.printStackTrace();
}
To connect to Reader object
int status;
try {
status = mReader.connect();
}
catch(Exception e){
e.printStackTrace();
}
int status;
try {
status = mReader.setPower(Reader.CCID_POWERON );
}
catch(Exception e){
e.printStackTrace();
}
try {
status = mReader.setPower(Reader.CCID_POWEROFF );
}
catch(Exception e){
e.printStackTrace();
}
byte pSendAPDU[] = new byte[] {(byte) 0xA0, (byte) 0xA4, 0x00, 0x00, 0x02, 0x3F, 0x00};
byte pRxBuff[] = new byte [128];
int pRxLen[] = new int[1];
int status;
try{
status = mReader.transmit(pSendAPDU, pSendAPDU.legnth, pRxBuff, pRxLen);
if (status != error.READER_SUCCESSFUL){
//shows error
}
else{
for (int i=0;i<pRxLen[0]; i++){
Log.d(TAG, "Received byte["+ i+ "]=0x"+ Integer.toHexString(pRxBuff[i]));
}
}
}
catch (Exception e){
e.printStackTrace();
}
byte pData[] = new byte[] {CMD_VENDOR_OP_CODE, VENDOR_CMD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
byte pRxBuff[] = new byte [128];
int pRxLen[] = new int[1];
int status;
try{
status = mReader.escape(pData, pData.legnth, pRxBuff, pRxLen);
if (status != error.READER_SUCCESSFUL){
//shows error
}
else{
for (int i=0;i<pRxLen[0]; i++){
Log.d(TAG, "Received byte["+ i+ "]=0x"+ Integer.toHexString(pRxBuff[i]));
}
}
}
catch (Exception e){
e.printStackTrace();
}
String atr;
byte []atrArray = new byte[64];
try {
atr = mReader.getAtrString();
atrArray = mReader.getAtr();
}
catch (Exception e){
e.printStackTrace();
}
To get Card Status
byte pCardStatus[] = new byte[1];
int status;
try {
status = mReader.getCardStatus(pCardStatus);
}
catch(Exception e){
e.printStackTrace();
}
if (status == error.READER_SUCCESSFUL){
//shows card status
}
To get current protcol
byte []proto = new byte[1];
try {
status = mReader.getProtocol(proto);
}
catch(Exception e){
e.printStackTrace();
}
if (status == error.READER_SUCCESSFUL && proto[0] == Reader.CCID_PROTOCOL_T0){
//do something
}
To get SN in EEPROM
byte pLen[] = new byte[1];
byte []pSN;
pLen[0] = 32;
pSN = new byte[pLen[0]];
try {
status = mReader.getSN(pSN, pLen);
}
catch(Exception e){
e.printStackTrace();
}
if (status == error.READER_SUCCESSFUL){
//shows the SN
}
To close Reader
try {
if (myDev.Close()){
//shows error
}
}
catch(Exception e){
e.printStackTrace();
}
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||