Я пытаюсь сделать то, что, я бы предположил, будет довольно простым, но, как оказалось, это не так. У меня есть считыватель 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 ,
У меня есть. Это на самом деле библиотека, о которой идет вся почта. –