How to Understand Java API Usage for Felica Cards

From wizarPOS
Revision as of 20:15, 6 January 2024 by Simon (talk | contribs)

Overview

This section outlines the procedure for using Java API to interact with Felica cards, which differ from standard contactless CPU cards.

Steps for Java API Usage with Felica Cards

  • Get RFCardReaderDevice:

Initialize by obtaining an instance of the RFCardReaderDevice. This is the first step in establishing communication with the Felica card reader.

  device = (RFCardReaderDevice) POSTerminal.getInstance(mContext).getDevice(POSTerminal.DEVICE_NAME_RF_CARD_READER);
  • Open Device:

Execute the command to open the card reader device. This action establishes a connection between your Java application and the card reader.

  device.open();
  • Search for Card:

Conduct a search operation to detect the Felica card within the reader's range.

  OperationListener listener = new OperationListener() {
    @Override
    public void handleResult(OperationResult arg0) {
      if (arg0.getResultCode() == OperationResult.SUCCESS) {
        sendSuccessLog2(mContext.getString(R.string.find_card_succeed));
        rfCard = ((RFCardReaderOperationResult) arg0).getCard();
      } else {
        sendFailedLog2(mContext.getString(R.string.find_card_failed));
      }
    }
  };
  device.listenForCardPresent(listener, TimeConstants.FOREVER); The result will be returned in the callback listener.
  • Communicate with the Card:

Once the Felica card is identified, proceed to communicate with it.

  if (rfCard instanceof FelicaCard) {
    result = ((FelicaCard) rfCard).transmit(arryAPDU, 0);
  }
  • Note on APDU Commands for Felica Cards:
    • Felica cards use a unique APDU command structure. Typically, this includes N (2 bytes in little-endian format), CmdID (1 byte), followed by data.
    • Refer to the specific customer specifications for detailed information regarding the APDU commands for Felica cards.
  • Close Device:

Conclude the session by closing the device. This step is essential for security and proper device management.

  device.close();

Important Considerations

  • The communication process with Felica cards requires adherence to their specific APDU command structure.
  • Developers should consult detailed customer specifications for precise command formats and data handling.