2011-01-15 3 views
4

Если кто-то хочет написать приложение Java, которое взаимодействует с физическим устройством, в частности читателем (например, когда вы идете в отель, спортзал, банк и т. Д., И вы передаете карту через считыватель и приложение находит вас в базе данных), как это делается?
Есть ли java api для взаимодействия с читателем и получения данных с карт?
Когда компания создает устройство чтения (физическое устройство), оно обеспечивает соответствующий apis?
Являются ли физические детали абстрактными от прикладного программиста?
Мне нужно взаимодействовать с читателем в Java, но я не знаю, с чего начать.
Любой вход приветствуется!Приложение java считывает данные с устройства чтения карт

Благодаря

ответ

4

Вы можете начать играть с javax.smartcardio пакета.

Это официальный продукт Oracle, позволяющий взаимодействовать с смарт-картами. Это не решит проблему связи устройств (44) в (в Unix просто откройте /dev/whatever0 с правом доступа, так как это был файл), но может помочь вам в использовании вашего смарт-карты.

+2

может Я прошу, чтобы вместо ссылки, которая просто говорит «это», что вы используете более описательный термин? Это облегчает людям, просматривающим ответы. Благодаря! –

+0

Спасибо. Так что устройство чтения не имеет значения? Мне просто нужно знать, совместима ли смарт-карта с APDU ISO/IEC 7816-4? Или я смешиваю здесь концепции? – Cratylus

+0

Я считаю, что ** все ** считыватели смарт-карт соответствуют этому стандарту. Я не большой эксперт в этом, я бы сначала попробовал приложение «hello world». Как вы можете видеть, есть пример кода. –

3

Это зависит от платформы. Например ОРАКУЛ заявляет Java Communications 3.0 API для работы с:

В API Java связи (также известный как javax.comm) обеспечивает приложениям доступ к оборудованию RS-232 (последовательные порты) и ограниченный доступ к IEEE-1284 (параллельный порт) , Режим SPP.

Это может дать вам стартер.

+1

Кроме того, если вам нужно использовать последовательные порты, SerialIO.com продает очень хороший межплатформенный интерфейс последовательного порта. –

+0

В каком случае мне нужно будет получить доступ через последовательные порты? Если связь api не может быть использована? – Cratylus

0

Здесь у вас есть универсальные драйверы usb для считывателей смарт-карт, а также демон, который может обнаруживать, когда подключены новые считыватели, и некоторые диагностические данные, когда считыватели инициируют соединение с смарт-картой (либо через контакт, либо с бесконтактным/NFC). http://www.linuxnet.com/

jpcsc затем может использоваться как API-интерфейс java для карты, поэтому вы можете читать и писать. Вы отвлечены от аппаратного обеспечения читателя, но вам все равно нужно много узнать о специфике смарт-карты - в какой версии Javacard/GlobalPlatform она использует, какие крипто-ключи используются, если вы хотите установить безопасное соединение, и т.д.

Или вы можете купить полную среду разработки, включая карты, считыватель, и IDE (обычно на основе Eclipse) от производителя смарт-карт, таких как G & D, Oberthur, Gemalto ...

+0

jpcsc ist quit old и разработка давно прекратилась. Вы должны проигнорировать javax.smartcardio в будущих проектах, потому что теперь есть будущее с jpcsc. – Fa11enAngel