Я работаю над проектом, который требует связи NFC между телефоном Android и ПК. Я использую Galaxy S3 в качестве телефона Android и ACR122 в качестве устройства чтения NFC. Я пробовал приложения на здесь и здесь.
Я использовал образец приложения, которое можно найти в android sdk, для передачи сообщения NDEF через NFC.
Сколько раз я ни пытался, мне не удавалось установить соединение между телефоном и ПК. Приложение Android работает нормально, поскольку оно может передавать сообщение NDEF через другие телефоны, но когда дело доходит до подключения к компьютеру, оно не работает. Светодиод на считывателе меняет цвет с красного на мигающий зеленый и оранжевый, когда я прикасаюсь телефоном к считывателю, но больше ничего не происходит.
Вот вывод журнала из приложения ismb-npp-java:
Получить завод
Получите терминалы
Название терминала: ACS ACR122 0
T=1
Вызывается rightProcedureTarget ..
[DEBUG] {отправка [50 байт]} 0xFF 0x00 0x00 0x00 0x2D 0xD4 0x8C 0x01 0x00 0x00 0x00 0x00> 0x00 0x40 0x01 0xFE 0x0F 0xBB 0xBA 0xA6 0xC9 0x89 0xFF 0x00B 0x00 0x00 0x00 0x00 0x00 0x00 0xC9 0x89 0x00 0x00 0x06 0x46 0x66 0x6D 0x01 0x01> 0x10 0x00
it.ismb.npp.IsmbNppException: проблема с передачей данных
[DEBUG] {отправка [7 байтов]} 0xFF 0x00 0x00 0x00 0x02 0xD4 0x86
[DEBUG] {отправка [26 байтов]} 0xFF 0x00 0x00 0x00 0x15 0xD4 0x8E 0x05 0x20 0x06 0x0F 0x63> 0x6F 0x6D 0x2E 0x61 0x6E 0x64 0x72 0x6F 0x69 0x646 0x2E 0x69 0x646 0x2E 0x70
на it.ismb.npp.IsmbNppConnection.transceive (IsmbNppConnection.java:281)
на it.ismb.npp.IsmbNppConnection.rightProcedureTarget (IsmbNppConnection.java:301)
на it.ismb.npp.SenderToPhone $ ThreadSender.run (SenderToPhone.java:90)
по адресу it.ismb.npp.SenderToPhone $ InitiatorTask.run (SenderToPhone.java:75)
в java.util.TimerThread.mainLoop (неизвестный источник)
в java.util.TimerThread.run (неизвестный источник)
it.ismb.npp.IsmbNppException: проблема с передачей данных
на it.ismb.npp.IsmbNppConnection.transceive (IsmbNppConnection.java:281)
на it.ismb.npp.IsmbNppConnection.rightProcedureTarget (IsmbNppConnection.java:306)
на it.ismb.npp.SenderToPhone $ ThreadSender.run (SenderToPhone.java:90)
по адресу it.ismb.npp.SenderToPhone $ InitiatorTask.run (SenderToPhone.java:75)
в java.util.TimerThread.mainLoop (неизвестный источник)
в java.util.TimerThread.run (неизвестный источник)
Исключение в потоке «Таймер-0» java.lang.IllegalStateException: карта удалена
в sun.security.smartcardio.CardImpl.checkState (неизвестный источник)
в sun.security.smartcardio.ChannelImpl.checkClosed (Неизвестный источник)
в sun.security.smartcardio.ChannelImpl.transmit (неизвестный источник)
на it.ismb.npp.IsmbNppConnection.transceive (IsmbNppConnection.java:263)
на it.ismb.npp.IsmbNppConnection.rightProcedureTarget (IsmbNppConnection.java:317)
на it.ismb.npp.SenderToPhone $ ThreadSender.run (SenderToPhone.java:90)
по адресу it.ismb.npp.SenderToPhone $ InitiatorTask.run (SenderToPhone.java:75)
в java.util.TimerThread.mainLoop (неизвестный источник)
в java.util.TimerThread.run (неизвестный источник)
Я использовал все драйверы, которые смог найти (включая последнюю версию), но проблема не устранена.
Может быть проблема с устройством? Или мне что-то здесь не хватает?