Явно закройте сеанс NF C со стороны Android, отправив S (DES) S-Block - PullRequest
0 голосов
/ 07 мая 2020

Я работаю над приложением Android, которое взаимодействует со встроенной системой через NF C на теге типа ISO / IEC 14443 типа A. Приложение записывает команду в определенную запись NDEF, которая, в свою очередь, обрабатывается встроенной системой.

Когда я завершаю сеанс NF C, выполняя tag.close() (где tag - это объект типа android.nfc.tech.IsoDep) тег выпущен только для моего приложения, но не обязательно системой Android. Фактически, я все еще могу повторно подключиться к тегу, выполнив команду tag.connect(), даже если радиочастотный доступ будет отключен, как только сторона I² C встроенной системы получит доступ к тегу. Обходной путь - физически удалить приложение с устройства.

Чтобы действительно завершить радиочастотный сеанс, я хочу отправить явный сигнал S(DES) (отмена выбора сеанса). К сожалению, метод tag.transceive(byte[] payload) передает I-Block, где payload - это C -APDU I-Block. Чтобы отправить команду S(DES), мне пришлось бы вместо этого отправить S-блок. Есть ли способ добиться этого?

...