How to Understand Java API Usage for Felica Cards

From wizarPOS
Revision as of 03:02, 7 April 2021 by Mahong (talk | contribs)
  • Get RFCardReaderDevice
  device = (RFCardReaderDevice) POSTerminal.getInstance(mContext).getDevice(POSTerminal.DEVICE_NAME_RF_CARD_READER);
  • Open device
  device.open();
  • Search Card
  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 Card
  if (rfCard instanceof FelicaCard) {
    result = ((FelicaCard) rfCard).transmit(arryAPDU, 0);
  }
 Felica card is different with a normal contactless CPU card, its' APDU command is special, generally, it includes N(2 bytes,little endian) + CmdID (1 bytes) + data, please refer to the customer spec to get detail information for APDU command.
  • Close device
  device.close();