2013-03-15 4 views
10

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

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

Вот мой код делает что:

Главная:

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, я просто не знаю, как туда добраться. Есть предположения?

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

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

ответ

-3

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

+2

У меня есть. Это на самом деле библиотека, о которой идет вся почта. –

Смежные вопросы