2015-04-23 5 views
1

Я пытаюсь интегрировать ACR122 в свое приложение для Android. Я использую библиотеку ANDROID (http://www.acs.com.hk/en/products/3/acr122u-usb-nfc-reader/), доступную в ACS.ACR122 - Android/Как извлечь UID

Все работает, я могу обнаружить наличие карты, но хочу извлечь UID/ID карты. Кто-то знает, как это сделать?

У вас есть пример такого типа интеграции?

+0

Есть ли причина, по которой вы дважды задавали этот вопрос? (Другой здесь: http://stackoverflow.com/q/29804329/2425802)? Если вы хотите изменить свой вопрос, используйте ссылку * edit * под ним. –

ответ

5

В случае карты Mifare вам необходимо отправить этот массив байтов APDU на карту: (byte) 0xFF, (byte) 0xCA, (byte) 0x00, (byte) 0x00, (byte) 0x00. Я не уверен, что ACR122 API, но, вероятно, вам нужно обернуть этот APDU в конкретный метод API как передачи()

UPDATE

Пример кода:

byte[] command = { (byte) 0xFF, (byte) 0xCA, (byte) 0x00, (byte) 0x00, (byte) 0x00 }; 
byte[] response = new byte[300]; 
int responseLength; 
responseLength = reader.transmit(slotNum, command, command.length, response,response.length); 
System.out.println(new String(response)); 

Reader является com.acs.smartcard.Reader объект и slotNum - номер слота. Я не уверен, как его найти, потому что у меня нет теста ACR. Но если вы сказали, что сможете установить базовое общение с читателем, возможно, вы знаете slotNum.

+0

Спасибо. У вас есть пример кода? – kh4ZE

+0

См. Обновленный ответ –

+0

как вы создаете объект-читатель? – ralphgabb