Я пытаюсь прочитать страницу тега Mifare Ultralight (точнее, EnOcean PTM 215B ), используя метод NFCMifareTag.sendMifareCommand
после его обнаружения и подключения к нему. Проблема в том, что все команды, которые я пытался отправить, вызывают ошибку «Потеря соединения с тегом», что довольно странно, поскольку я только что успешно к ней подключился.
(упрощенный) код выглядит следующим образом:
// tag has been determined to be of type NFCMifareTag earlier
session.connect(to: tag) { (error: Error?) in
if (error != nil) {
return
}
print("Connected to the tag")
let data: [UInt8] = [0x30, 0x04, 0xEE, 0x26] // READ page 4 + CRC
let dataPacket = Data(bytes: data, count: data.count)
tag.sendMifareCommand(
commandPacket: dataPacket,
completionHandler: { (response: Data?, error: Error?) in
if nil != error {
return // <-- "Tag connection lost" error
}
// Handle the data as the operation was successful
}
)
}
Буду признателен за любые указания и / или идеи о том, что может быть причиной такого поведения. Как уже упоминалось, я пробовал различные пакеты данных, но все они работают одинаково. Я также пробовал несколько разных телефонов, чтобы устранить проблемы с оборудованием. Поддержка была только что добавлена в iOS 13, и поэтому я не смог найти в Интернете ни одного примера, в котором бы использовалась команда sendMifareUltralight
.