Отправить данные с устройства Android на ошибку карты Java

Я новичок в разработке Android NFC. Я создал приложение для Android, которое с помощью ISOdep отправляет данные на карту Java. В моем апплете карты Java я получаю данные из команды APDU и зашифрованные данные с использованием RSA2048 и отправляю обратно в приложение Android. Поэтому я использую NEXUS Карта S и Jcop 81 для тестирования. Моя проблема заключается в том, что когда я извлекаю карту Java во время обработки шифрования, устройство Android (nexus s) дает проводной звук. После этого я пытаюсь снова нажать, и он всегда дает этот проводной звук. сбросьте java-карту с помощью инструментов JCOP и нажмите снова. Теперь она работает нормально. Здесь Как сбросить карту Java с помощью команды APDU я спросил, как сбросить карту Java перед выбором апплета. решить эту проблему. Есть ли способ начать транзакцию и завершить транзакцию, как в javax.smartcardio, или есть ли другой способ сделать этот процесс? Еще одна вещь, которую я хочу знать, является ли эта проблема общей для всех устройств Android? Саджит


person Sajith Vijesekara    schedule 21.08.2013    source источник
comment
Можете ли вы объяснить, что вы подразумеваете под сбросом карты Java с помощью инструментов JCOP? Какие именно шаги вы предпринимаете? PS. Сам программирую оболочку JCOP.   -  person Maarten Bodewes    schedule 21.08.2013
comment
Спасибо Оулстед. Рад получить от вас совет. Сброс означает, что я отправляю команду /atr, а затем я подумал, что это сброс. Причина в том, что после этого я могу отправить данные обратно на карту Java.   -  person Sajith Vijesekara    schedule 21.08.2013
comment
Если вы согласны, я нашел это очень интересным чтением.   -  person Maarten Bodewes    schedule 22.08.2013
comment
Спасибо, owlstead.if yopu ok, можете ли вы сказать мне, что команда /atr, которую мы отправляем с помощью оболочки Jcop, является командой APDU ??   -  person Sajith Vijesekara    schedule 22.08.2013
comment
Это определенно не команда APDU. Как было сказано ранее, команды APDU RESET не существует. Причина в том, что APDU имеют более высокий уровень (блок данных прикладного протокола). Сброс не является частью протокола приложения.   -  person Maarten Bodewes    schedule 22.08.2013
comment
@ Sajith4U, не могли бы вы предоставить больше контекста? Странный звук звучит так, будто ваше устройство получает новое намерение NFC, которое не обрабатывается. Включаете ли вы диспетчеризацию переднего плана для конкретной активности, вызывающей ISODep.tranceive? Как вы справляетесь с IOExceptions? Вы установили тайм-аут на ISODep?   -  person martijno    schedule 28.08.2013


Ответы (1)


использование getATR() в библиотеках Java javax.smartcardio не приводит к сбросу карты. Поэтому вам нужно удалить карту из считывателя.

person shiju B    schedule 21.08.2013
comment
Но в ОС Android не поддерживается отключение java-карты. - person Sajith Vijesekara; 21.08.2013
comment
Он хотел физически удалить карту вручную. Это должно работать, но, поскольку это решение без какой-либо разработки, здесь оно может быть не по теме: P - person Maarten Bodewes; 22.08.2013