2013-12-05 3 views
0

как я писал в названии, я пытаюсь использовать эмуляцию карты, используя мой Nexus S, Cyanogenmod 10.1.3 и ACS Acr122 usb reader. Я нашел эту статью http://nelenkov.blogspot.it/2012/10/emulating-pki-smart-card-with-cm91.html и github с исходным кодом https://github.com/nelenkov/virtual-pki-card. Я следовал инструкциям, и это случилось странно. В то время как смартфон на читателе запусков связи и останавливается несколько раз, таким образом, демо не работает, и клиент вызывает это исключение:Эмуляция карты с Nexus S и ACS ACR122

Exception in thread "main" java.lang.RuntimeException: javax.smartcardio.CardException: connect() failed 
    at org.nick.sepkiclient.Main.main(Main.java:105) 
Caused by: javax.smartcardio.CardException: connect() failed 
    at sun.security.smartcardio.TerminalImpl.connect(Unknown Source) 
    at org.nick.sepkiclient.Main.waitForCard(Main.java:166) 
    at org.nick.sepkiclient.Main.main(Main.java:48) 
Caused by: sun.security.smartcardio.PCSCException: SCARD_E_READER_UNAVAILABLE 
    at sun.security.smartcardio.PCSC.SCardStatus(Native Method) 
    at sun.security.smartcardio.CardImpl.<init>(Unknown Source) 
    ... 3 more 

Есть ли у вас какие-либо идеи о том, как исправить это? Thanks

ответ

0

К сожалению, считыватель NFC ACR 122U на самом деле не используется в качестве считывателя смарт-карт. Несмотря на то, что для подключения считывателя к ПК используется ПК/SC (CCID), большинство версий ACR 122U требуют использования специальных команд считывателя и их туннелирования по ПК/SC. См. this question для получения дополнительной информации о процедуре туннелирования и доступных командах.

+0

На самом деле читателем является ACR 122, а не ACR 122U. Я использую его для чтения смарт-карт, тегов и P2P-связи с устройствами Android. Проблема в том, что я не могу использовать эмуляцию карты, и я не знаю почему. =/ – michoprogrammer

+0

Согласно [сайту ACS] (http://www.acs.com.hk/en/product-lines/6/contactless-readers/) нет такой вещи, как «ACR 122» (т.е. без любая буква за цифрами). Как вы сказали, ваш читатель использует USB, он может быть ACR 122U или ACR 122T (то же самое, другой пакет). Просто для того, чтобы вы поняли: используете ли вы ACR 122x, подключенные к телефону, для эмуляции карты или используете ACR 122x для чтения карты, эмулированной с помощью эмуляции CM-карты? –

+0

Второй! Я пытаюсь прочитать карту, эмулируемую с помощью CM, используя примерное приложение, которое вы можете найти здесь https://github.com/nelenkov/virtual-pki-card. О имени ACR, используя этот простой код «.... terminal.list(). Get (0) .getName() ...« Я получаю этот «ACS ACR122 0», тогда я, хотя мой ACR не был ACR 122U, но что бы то ни было ... :-) – michoprogrammer

Смежные вопросы