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工具。
我有。那實際上是整個博文所關心的圖書館。 – 2013-05-16 14:01:53