所以我在WWDC,並能檢測NFC卡在蘋果實驗室用下面的代碼提供:檢測ISO/IEC 14443(的Mifare超輕型或經典)NFC卡與CoreNFC
nfcSession = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)
nfcSession.begin()
和委託方法:
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
DispatchQueue.main.async {
print("Error:" + error.localizedDescription)
}
}
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
print("Did detect NDEFs.")
for message in messages {
for record in message.records {
print(record.identifier)
print(record.payload)
print(record.type)
print(record.typeNameFormat)
}
}
}
如何過,我要檢測的ISO/IEC 14443協議下的Mifare超輕(或經典)卡。
每當我得到掃描視圖,什麼都不會發生。也不會調用錯誤回調或成功塊。有沒有辦法看這張卡片?
非常感謝!
感謝Martin - 兩條評論:1.)DESFire是Type 4標籤的一個實現;他們不是MIFARE Classic的直接接班人。 2.)將所有密鑰保持不變的做法是不好的做法,因爲任何使用NFC寫入設備(例如Android手機)的人都可以更改NDEF。所以,使用可以鎖定的標籤絕對會更好。 – ErikM
感謝您的評論!無論如何,我對加密密鑰的評論都是錯誤的。 NDEF規範要求將密鑰A更改爲特定於NDEF使用情況的值。我的通用Arduino閱讀器沒有檢查這些非工廠默認鍵,並且將該標籤報告爲不可讀。同時,iPhone無法讀取標籤,但可能是因爲它沒有100%正確格式化爲NDEF。我錯誤地得出結論認爲鍵是讀取失敗的原因。 – Martin