2013-03-15 119 views
10

我正在嘗試做我本來會猜測會非常簡單的事情,但事實並非如此。我有一個ACR122 NFC閱讀器和一堆Mifare Classic和Mifare Ultralight標籤,我想要做的就是從Java應用程序讀取並寫入每個卡的MIME類型和短文本字符串。下面是我得到了什麼至今工作:使用NFC工具的NFC,創建NDEF應用程序

  • 我可以連接到我的讀者和聽標籤
  • 我可以檢測哪種類型的標籤在讀取器上
  • 在我可以在MIFARE經典標籤循環瀏覽標籤上的所有數據(在從手機編程標籤之後)並構建一個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); 

     } 
    } 
} 

從這裏,我似乎處於虧損至於如何真正創建應用程序並與其進行交互。一旦我可以創建應用程序並將Record對象寫入它,我應該可以使用TextMimeRecord類型編寫我需要的數據,但我不知道如何到達那裏。有什麼想法嗎?

:: Addendum :: 顯然沒有nfc-tools標籤,並且可能應該有。會有足夠的代表足夠的人來創建一個並重新包裝我的問題嗎?

::第二附錄:: 另外,如果有人能指向我的圖書館的方向,我需要什麼,是有據可查的,並將運行在Windows環境中,我願意溝渠NFC工具。

回答

-3

Did you check this library?它寫得很好,文檔很差。實際上不超過JavaDoc。

+2

我有。那實際上是整個博文所關心的圖書館。 – 2013-05-16 14:01:53