Аутентификация Mifare Ultralight C в Android (2.3.6)

Я пытаюсь аутентифицировать тег Mifare Ultralight C (совместимый с ISO/IEC 14443-2 и 14443-3 типа A).

Я отправляю команду аутентификации с помощью функции MifareUltralight.transceive() в Android. Я также проверил NfcA.transceive() (похоже, что IsoDep несовместим с тегом такого типа, потому что этот объект предназначен для работы с тегами ISO/IEC 14443-4, и поэтому я не использую IsoDep.transceive()).

Таким образом, когда я впервые отправляю команду запроса аутентификации, тег отвечает на функцию transceive() с помощью AFxxxx....., где я обрабатываю ответ тега, а затем отправляю другой метод transceive() с ответом на этот ответ, но... .непосредственно перед отправкой transceive () тег подключается, когда он отправляется, я получаю предупреждение «тег потерян» и «сбой передачи».

Кроме того, если я попробую использовать NfcA, возникнет та же проблема.

Наконец, если я попытаюсь отправить одну команду аутентификации после первого ответа, я также получу предупреждение «Тег потерян» с ошибкой передачи.

Итак, мой вопрос:

Почему метка NFC теряется при отправке второго сообщения transceive()? <<

(Похоже, это не проблема таймаута, потому что непосредственно второй прием() соединение открыто с тегом) Я сделал все это в другом потоке, отличном от пользовательского интерфейса.

Заранее спасибо!

5
задан Michael Roland 21 November 2016 в 14:52
поделиться