Я работаю над приложением 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-блок. Есть ли способ добиться этого?