How to Understand Java API Usage for Felica Cards

From wizarPOS
Revision as of 20:18, 6 January 2024 by Simon (talk | contribs) (Simon moved page Java API usage for Felica card to How to Understand Java API Usage for Felica Cards: Normalize the title)

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.