Java TerminalFactory и считыватель NFC ACR122U на raspberry Pi

Я использую Raspberry Pi для создания апплета для чтения карт NFC на Java. По какой-то причине Java не «видит» весь Терминал, в то время как nfc-list и pcsc_scan видят подключенный ридер.

pi@raspberrypi ~ $ sudo nfc-poll nfc-poll uses libnfc 1.7.1 NFC reader: ACS / ACR122U PICC Interface opened NFC device will poll during 30000 ms (20 pollings of 300 ms for 5 modulations) ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  04
       UID (NFCID1): 3b  3a  34  06

И pcsc_scan

pi@raspberrypi ~/pcsc-tools-1.4.23 $ ./pcsc_scan
PC/SC device scanner
V 1.4.23 (c) 2001-2011, Ludovic Rousseau <[email protected]>
Compiled with PC/SC lite version: 1.8.13
Using reader plug'n play mechanism
Scanning present readers...
0: ACS ACR122U 00 00

Mon Apr 13 12:06:54 2015

Мой код Java выглядит так, это небольшой скрипт, чтобы проверить, работают ли терминалы.

import java.util.List;
import javax.smartcardio.*;

public class ReadCard {

        public static void main(String[] argv) throws Exception {

                // show the list of available terminals
                TerminalFactory factory = TerminalFactory.getDefault();

                List<CardTerminal> terminals = factory.terminals().list();
                System.out.println("Terminals: " + terminals);
        }
}

Я также пытался вручную выбрать библиотеку pcsc с помощью следующей команды:

pi@raspberrypi ~ $ java -Dsun.security.smartcardio.library=/usr/local/lib/libpcsclite.so.1 ReadCard
Terminals: []
pi@raspberrypi ~ $ whereis libpcsclite.so.1
libpcsclite.so: /usr/local/lib/libpcsclite.so.1 /usr/local/lib/libpcsclite.so

К сожалению, это тоже не сработало.

Нужен совет, что делать дальше, заранее спасибо!


person DescX    schedule 13.04.2015    source источник
comment
Вы решили свою проблему? У меня точно такая же проблема...   -  person KBeckers    schedule 07.10.2015
comment
Привет @KBeckers, я больше не работаю над этим проектом, но в конце концов нам удалось заставить его работать. Я не уверен, каковы были точные начальные параметры, но я попытаюсь выяснить, смогу ли я заполучить группу проектов, которая сейчас работает с этим приложением.   -  person DescX    schedule 07.10.2015
comment
Если это полезно, используйте эту ссылку. Java, использующая smartcardio, не обнаруживает читателя   -  person Zablon Dawit    schedule 03.02.2021


Ответы (1)


То же самое. Дополнительная подсказка: светодиод не был активен.

Но мне помогает подключение CardReader к активному USB-концентратору(*). Светодиод загорается, подается звуковой сигнал, и java может найти терминал.

(* Работает несколько часов :-O)

Изменить: для записей:

Переустановка пакетов вернула мое устройство к жизни. Каждый раз, когда я меняю порт USB, мне приходится переустанавливать пакеты.

apt-get install --reinstall pcscd pcsc-tools libpcsclite1 libpcsclite-dev libpcsclite1 libccid

(У меня не было времени определить пакет, вызывающий...)

person Ralph Erdt    schedule 17.09.2018