|
|
(One intermediate revision by one other user not shown) |
Line 1: |
Line 1: |
| == Overview ==
| | {{Migrating|https://smartpossdk.gitbook.io/cloudpossdk/faq/card/use-felica-card}} |
| 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.
| |
| <syntaxhighlight lang="java" line='line'>
| |
| device = (RFCardReaderDevice) POSTerminal.getInstance(mContext).getDevice(POSTerminal.DEVICE_NAME_RF_CARD_READER);
| |
| </syntaxhighlight>
| |
| * '''Open Device:'''
| |
| Execute the command to open the card reader device. This action establishes a connection between your Java application and the card reader.
| |
| <syntaxhighlight lang="java" line='line'>
| |
| device.open();
| |
| </syntaxhighlight>
| |
| * '''Search for Card:'''
| |
| Conduct a search operation to detect the Felica card within the reader's range.
| |
| <syntaxhighlight lang="java" line='line'>
| |
| 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.
| |
| </syntaxhighlight>
| |
| * '''Communicate with the Card:'''
| |
| Once the Felica card is identified, proceed to communicate with it.
| |
| <syntaxhighlight lang="java" line='line'>
| |
| if (rfCard instanceof FelicaCard) {
| |
| result = ((FelicaCard) rfCard).transmit(arryAPDU, 0);
| |
| }
| |
| </syntaxhighlight>
| |
| * '''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.
| |
| <syntaxhighlight lang="java" line='line'>
| |
| device.close();
| |
| </syntaxhighlight>
| |
| == 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.
| |