Подтвердить что ты не робот

NFC с NFC-инструментами, создание приложения NDEF

Я пытаюсь сделать то, что, я бы догадался, будет довольно простым, но, как оказалось, это не так. У меня есть считыватель NFC ACR122 и куча Mifare Classic и Mifare Ultralight, и все, что я хочу сделать, это читать и писать типом mime и короткой текстовой строкой на каждую карту из приложения Java. Вот что я до сих пор работаю:

  • Я могу подключиться к своему читателю и слушать теги
  • Я могу определить, какой тип тега находится на считывателе
  • В тегах Mifare Classic я могу прокрутить все данные тега (после программирования тега с моего телефона) и построить строку ascii, но большая часть данных - это "нежелательные" данные.
  • Я могу определить, есть ли каталог приложения в теге.

Вот мой код для этого:

Main:

public static void main(String[] args){
        TerminalFactory factory = TerminalFactory.getDefault();
        List<CardTerminal> terminals;
        try{
            TerminalHandler handler = new TerminalHandler();
            terminals = factory.terminals().list();
            CardTerminal cardTerminal = terminals.get(0);
            AcsTerminal terminal = new AcsTerminal();
            terminal.setCardTerminal(cardTerminal);
            handler.addTerminal(terminal);
            NfcAdapter adapter = new NfcAdapter(handler.getAvailableTerminal(), TerminalMode.INITIATOR);
            adapter.registerTagListener(new CustomNDEFListener());
            adapter.startListening();
            System.in.read();
            adapter.stopListening();
        }
        catch(IOException e){
        }
        catch(CardException e){
            System.out.println("CardException: " + e.getMessage());
        }

}

CustomNDEFListener:

public class CustomNDEFListener extends AbstractCardTool
{
    @Override
    public void doWithReaderWriter(MfClassicReaderWriter readerWriter)
            throws IOException{
        NdefMessageDecoder decoder = NdefContext.getNdefMessageDecoder();
        MadKeyConfig config = MfConstants.NDEF_KEY_CONFIG;
        if(readerWriter.hasApplicationDirectory()){
            System.out.println("Application Directory Found!");
            ApplicationDirectory directory = readerWriter.getApplicationDirectory();
        }
        else{
            System.out.println("No Application Directory Found, creating one.");
            readerWriter.createApplicationDirectory(config);

        }
    }
}

Отсюда я, кажется, не понимаю, как на самом деле создавать и взаимодействовать с приложением. Как только я смогу создать приложение и записать объекты записи в него, я должен буду писать нужные мне данные с помощью типа TextMimeRecord, я просто не знаю, как туда добраться. Любые мысли?

:: Добавление:: По-видимому, нет тега nfc-tools, и, вероятно, должно быть. Будет ли кто-то с достаточным количеством репутации быть достаточно любезным, чтобы создать его, и повторить мой вопрос, чтобы включить его?

:: Второе добавление:: Кроме того, я готов отказаться от NFC-инструментов, если кто-то может указать мне в сторону библиотеки, которая работает для того, что мне нужно, хорошо документирована и будет работать в среде Windows.

4b9b3361

Ответ 1

Вы отметили эту библиотеку? Хорошо написано, как бы плохо документирована. На самом деле не более чем JavaDoc.