Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## android.device
Class IccManager

    java.lang.Object
      android.device.IccManager

    public class IccManager

extends java.lang.Object

The IccManager class is used to initialize and control the smart card reader, to sends a command Application Protocol Data Unit(APDU) to a card and retrieve the response APDU.

To control the smart card reader with this class, use the following steps:

1. You can obtain an instance of this class by calling. IccManager manager = new IccManager();
2. initialize a slot for the smart card reader with `open(byte, byte, byte)`.
3. query whether the smart card is not existent with `detect()`.
4. power on to activate and reset the smart card with `activate(byte[] )`.
5. sends a command Application Protocol Data Unit(APDU) to a card and retrieve the response APDU with `apduTransmit(byte[], int, byte[], byte[])`.
6. power off the smart card with `deactivate()`.
7. Call `close()` to close the slot for smart card reader.

For more information about the smart card reader, read the samples folder below IccManager , ISO4442 Demo and PASMDemo .

Constructor Summary
`IccManager()`

Method Summary
`int` | `activate(byte[] pAtr)` Activate and reset the card
`int` | `apduTransmit(byte[] apdu, int apduLen, byte[] rsp, byte[] sw)` Transmit APDU to the IC card
`byte[]` | `at88sc102_read(int addr, int length)` Read the data stored in main memory for At88sc102
`int` | `at88sc102_VerifyPassword(int type, byte[] data, int length)` Check & Verify password for At88sc102.
`int` | `at88sc102_write(int addr, byte[] data, int dataLen)` Write data to the main storage area At88sc102
`int` | `close()` Close the slot
`int` | `deactivate()` Deactivate the card
`int` | `detect()` check if IC card is inserted
`int` | `getResponseEnable(byte autoFlag)` Set whether the drive layer to the 61xx, 6Cxx and other commands for automatic data acquisition, the default for automatic acquisition.
`int` | `open(byte slot, byte CardType, byte Volt)` Open the IC card for operation
`int` | `request_Type(byte[] type)` Request IC Card type.
`int` | `setETU(int etuTime)` Set the ETU.
`int` | `sle4428_password(int mode, byte[] data)` Submit the transfer data, enter the personalization mode
`byte[]` | `sle4428_readMemory(int addr, int length)` Read the data stored in main memory for SLE4428
`int` | `sle4428_reset(byte[] pAtr)` reset the SLE4428
`int` | `sle4428_writeMemory(int addr, byte[] data, int dataLen)` Write data to the main storage area SLE4428
`byte[]` | `sle4436_authenticate(int key, byte[] clkCnt, byte[] challengeData)` Get the Card verification certificate
`int` | `sle4436_decValue(int pValue)` Reduction balance
`int` | `sle4436_readBit(byte[] pData)` Read values from the Card bit
`byte[]` | `sle4436_readMemory(int addr, int length)` Read the data stored in main memory for SLE4436
`int` | `sle4436_regIncrease(int shiftBits)` Move the register
`int` | `sle4436_reloadByte()` Reload Byte
`int` | `sle4436_reset(byte[] pAtr)` reset the SLE4436
`int` | `sle4436_verifyPassword(byte[] passwd)` Submit the transfer data, enter the personalization mode
`int` | `sle4436_writeBit()` Write a byte for Card
`int` | `sle4436_writeCarry(int mode, int addr, byte[] data, int dataLen)` Write Carry data
`int` | `sle4436_writeMemory(int addr, byte[] data, int dataLen)` Write data to the main storage area SLE4436
`int` | `sle4442_changePassword(byte[] passwd)` Change password.
`int` | `sle4442_readErrorCounter(byte[] errorCount)` Change password.
`byte[]` | `sle4442_readMainMemory(int addr, int length)` Read the data stored in main memory for SLE4442
`byte[]` | `sle4442_readProtectionMemory(int address, int len)` Read SLE4442 card protection bit storage data (4 BYTE). 4 bytes of data read is to save the SLE4442 bits data in storage area.
`int` | `sle4442_reset(byte[] pAtr)` reset the SLE4442
`int` | `sle4442_verifyPassword(byte[] passwd)` Comparison of SLE4442 cards, each card after power compared to the card password, otherwise the card data is read-only, you will not be on the card of any write operation.
`int` | `sle4442_writeMainMemory(int addr, byte[] data, int dataLen)` Write data to the main storage area SLE4442
`int` | `sle4442_writeProtectionMemory(int addr, byte[] data, int dataLen)` The write protection bit storage area.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### IccManager

    public IccManager()

Method Detail

### open

    public int open(byte slot,
                    byte CardType,
                    byte Volt)

  Open the IC card for operation

  Parameters:
    `slot` - 0 - IC slot； 1 - PSAM1 slot;2 - PSAM2 slot
    `CardType` - type: 0x01 - IC card; 0x02 - SLE4442;
    `Volt` - valtage to supply: 0x01 - 3V; 0x02 - 5V; 0x03 - 1.8V;
  Returns:
    0 if successful；negative number if not successful

### close

    public int close()

  Close the slot

  Returns:
    0 if successful；negative number if not successful

### detect

    public int detect()

  check if IC card is inserted

  Returns:
    0 card is detected；negative number if card is not detected

### activate

    public int activate(byte[] pAtr)

  Activate and reset the card

  Parameters:
    `pAtr` - to store the returned ATR from the card
  Returns:
    0 if successful；negative number if not successful

### apduTransmit

    public int apduTransmit(byte[] apdu,
                            int apduLen,
                            byte[] rsp,
                            byte[] sw)

  Transmit APDU to the IC card

  Parameters:
    `apdu` - APDU to be sent to the card
    `apduLenLength` - of APDU
    `rsp` - to store the response from the card
    `sw` - to store the returned status bytes
  Returns:
    length of rsp；returns negative number if function failed

### deactivate

    public int deactivate()

  Deactivate the card

  Returns:
    0 if successful；negative number if not successful

### request_Type

    public int request_Type(byte[] type)

  Request IC Card type.

  Parameters:
    `type` - type of password. 0
  Returns:
    Returns 0 if successful. others if failed. type will store the type of card: 1 - IC card, 2 - SLE4442 card.

### getResponseEnable

    public int getResponseEnable(byte autoFlag)

  Set whether the drive layer to the 61xx, 6Cxx and other commands for automatic data acquisition, the default for automatic acquisition.

  Parameters:
    `autoFlag` - value 0: by the application layer to get; 1: by the drive layer is automatically acquired.
  Returns:
    0 if successful；negative number if not successful

### setETU

    public int setETU(int etuTime)

  Set the ETU. Default is 372.

  Parameters:
    `etuTime` - ETU
  Returns:
    0 if successful；negative number if not successful

### sle4442_reset

    public int sle4442_reset(byte[] pAtr)

  reset the SLE4442

  Parameters:
    `pAtr` - to store the return ATR
  Returns:
    Length of ATR; Negative number if failed

### sle4442_readMainMemory

    public byte[] sle4442_readMainMemory(int addr,
                                         int length)

  Read the data stored in main memory for SLE4442

  Parameters:
    `addr` - The starting address of operation data, the range of the parameters of the SLE4442 card: 0---255.
    `length` - To read the data length, the range of the parameters of the SLE4442 card: 1---256. In addition to ByteAddr and Length and cannot be greater than the actual capacity of the card, otherwise the reader will refuse to execute the command, and returns an error.
  Returns:
    Returns byte array indicating the store data if successful. Returns null if failed.

### sle4442_writeMainMemory

    public int sle4442_writeMainMemory(int addr,
                                       byte[] data,
                                       int dataLen)

  Write data to the main storage area SLE4442

  Parameters:
    `addr` - The starting address of operation data, the range of the parameters of the SLE4442 card: 0---255.
    `data` - The data to be written
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4442_readProtectionMemory

    public byte[] sle4442_readProtectionMemory(int address,
                                               int len)

  Read SLE4442 card protection bit storage data (4 BYTE). 4 bytes of data read is to save the SLE4442 bits data in storage area. Sequential data bit: low in front, high in the post. Such as: read data: 30 FF 1F F8 from the first byte of 30H can be analyzed as follows: the binary 30H corresponding to the lower four bits: 00110000 to 0 represent the four byte SLE4442 of the card (answer to reset) cannot be changed

  Parameters:
    `address` - 0x00- 0xff
    `Len` - Length to read, 4 Bytes: bit31 - read out 32Bytes; bit0 - read out 1Byte; bit* - etc.
  Returns:
    Returns byte array indicating protected storage data if successful. Returns null if failed.

### sle4442_writeProtectionMemory

    public int sle4442_writeProtectionMemory(int addr,
                                             byte[] data,
                                             int dataLen)

  The write protection bit storage area. Write protection on the 4442 card data (disposable, write protection will not be able to restore). Before the 32BYTE data only for SLE4442 write protect (corresponding to protect a storage area of 32 BIT). This function can be one of a plurality of consecutive bytes protection (up to 32 bytes). According to the write protection properties of SLE4442 card, to a byte write protection must provide the bytes of data at the same time sends the write protection command, consistent data only provides the data and the actual store when really on the specified storage area is write protected.

  Parameters:
    `addr` - The starting address of operation data, the range of the parameters of the SLE4442 card: 0---31.
    `data` - Write protect bit data
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4442_verifyPassword

    public int sle4442_verifyPassword(byte[] passwd)

  Comparison of SLE4442 cards, each card after power compared to the card password, otherwise the card data is read-only, you will not be on the card of any write operation. Secure storage area (except the error counter outside) will not be able to read and write

  Parameters:
    `passwd` - The data buffer pointer password, password here to store data migration and card in the password. The first byte of pt corresponding to protected storage (pt+1) corresponding to second byte protected storage (pt+2) corresponding to third byte protected storage
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4442_changePassword

    public int sle4442_changePassword(byte[] passwd)

  Change password.

  Parameters:
    `passwd` - The data buffer point to the new password.
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4442_readErrorCounter

    public int sle4442_readErrorCounter(byte[] errorCount)

  Change password.

  Parameters:
    `errorCount` - The data buffer point to error count, 1Byte.
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4436_reset

    public int sle4436_reset(byte[] pAtr)

  reset the SLE4436

  Parameters:
    `pAtr` - to store the return ATR
  Returns:
    Length of ATR; Negative number if failed

### sle4436_readMemory

    public byte[] sle4436_readMemory(int addr,
                                     int length)

  Read the data stored in main memory for SLE4436

  Parameters:
    `addr` - The starting address of operation data, the range of the parameters of the SLE4436 card: 0---112.
    `length` - To read the data length, the range of the parameters of the SLE4436 card: 1---112. In addition to ByteAddr and Length and cannot be greater than the actual capacity of the card, otherwise the reader will refuse to execute the command, and returns an error.
  Returns:
    Returns byte array indicating the store data if successful. Returns null if failed.

### sle4436_writeMemory

    public int sle4436_writeMemory(int addr,
                                   byte[] data,
                                   int dataLen)

  Write data to the main storage area SLE4436

  Parameters:
    `addr` - The starting address of operation data, the range of the parameters of the SLE4436 card: 0---112.
    `data` - The data to be written
    `dataLen` - The data length
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4436_writeCarry

    public int sle4436_writeCarry(int mode,
                                  int addr,
                                  byte[] data,
                                  int dataLen)

  Write Carry data

  Parameters:
    `mode` -
    `addr` - The starting address of operation data
    `data` - The data to be written
    `dataLen` -
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4436_verifyPassword

    public int sle4436_verifyPassword(byte[] passwd)

  Submit the transfer data, enter the personalization mode

  Parameters:
    `passwd` - The data buffer pointer password, password here to store data migration and card in the password. The first byte of pt corresponding to protected storage (pt+1) corresponding to second byte protected storage (pt+2) corresponding to third byte protected storage
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4436_authenticate

    public byte[] sle4436_authenticate(int key,
                                       byte[] clkCnt,
                                       byte[] challengeData)

  Get the Card verification certificate

  Parameters:
    `key` -
    `clkCnt` - Number of clock
    `challengeData` -
  Returns:

### sle4436_regIncrease

    public int sle4436_regIncrease(int shiftBits)

  Move the register

  Parameters:
    `shiftBits` - move Bits
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4436_readBit

    public int sle4436_readBit(byte[] pData)

  Read values from the Card bit

  Parameters:
    `shiftBits` -
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4436_writeBit

    public int sle4436_writeBit()

  Write a byte for Card

  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4436_reloadByte

    public int sle4436_reloadByte()

  Reload Byte

  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4436_decValue

    public int sle4436_decValue(int pValue)

  Reduction balance

  Parameters:
    `pValue` - The Amount of money to be eduction
  Returns:
    Returns the card balance if successful. Returns -1 if failed.

### sle4428_reset

    public int sle4428_reset(byte[] pAtr)

  reset the SLE4428

  Parameters:
    `pAtr` - to store the return ATR
  Returns:
    Length of ATR; Negative number if failed

### sle4428_readMemory

    public byte[] sle4428_readMemory(int addr,
                                     int length)

  Read the data stored in main memory for SLE4428

  Parameters:
    `addr` - The starting address of operation data, the range of the parameters of the SLE4428 card: 0---0x3FF.
    `length` - To read the data length, the range of the parameters of the SLE4428 card: 1---0x400. In addition to ByteAddr and Length and cannot be greater than the actual capacity of the card, otherwise the reader will refuse to execute the command, and returns an error.
  Returns:
    Returns byte array indicating the store data if successful. Returns null if failed.

### sle4428_writeMemory

    public int sle4428_writeMemory(int addr,
                                   byte[] data,
                                   int dataLen)

  Write data to the main storage area SLE4428

  Parameters:
    `addr` - The starting address of operation data, the range of the parameters of the SLE4428 card: 0---0x3FF.
    `data` - The data to be written
    `dataLen` - The data length, 0x400.
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### sle4428_password

    public int sle4428_password(int mode,
                                byte[] data)

  Submit the transfer data, enter the personalization mode

  Parameters:
    `mode` - 0 verify password or 1 changed password
    `data` - The data buffer pointer password, password here to store data migration and card in the password. The first byte of pt corresponding to protected storage (pt+1) corresponding to second byte protected storage (pt+2) corresponding to third byte protected storage
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### at88sc102_read

    public byte[] at88sc102_read(int addr,
                                 int length)

  Read the data stored in main memory for At88sc102

  Parameters:
    `addr` - The starting address of operation data, the range of the parameters of the At88sc102 card: 0---0xFF.
    `length` - To read the data length, the range of the parameters of the At88sc102 card: 1---0x100. In addition to ByteAddr and Length and cannot be greater than the actual capacity of the card, otherwise the reader will refuse to execute the command, and returns an error.
  Returns:
    Returns byte array indicating the store data if successful. Returns null if failed.

### at88sc102_write

    public int at88sc102_write(int addr,
                               byte[] data,
                               int dataLen)

  Write data to the main storage area At88sc102

  Parameters:
    `addr` - The starting address of operation data, the range of the parameters of the At88sc102 card: 0---0xFF.
    `data` - The data to be written
    `dataLen` - The data length, 0x100.
  Returns:
    Returns 0 if successful. Returns -1 if failed.

### at88sc102_VerifyPassword

    public int at88sc102_VerifyPassword(int type,
                                        byte[] data,
                                        int length)

  Check & Verify password for At88sc102.

  Parameters:
    `type,` - type of password. 0: SC, 1: erase EZ1 password, 2: erase EZ2 password.
    `data,` - password to verify. If type is SC, the len should be 2Bytes. EZ1, the len should be 6Bytes. EZ2, the len should be 4Bytes.
  Returns:
    Returns 0 if successful. -1 if failed.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD