未检测到 iOS 13、Swift 5、Core NFC MiFare Classic 1K

Cre*_*ter 8 rfid ios mifare swift core-nfc

我在使用 ios 13+ 和 swift 5 从 rfid 芯片读取数据时遇到一个非常基本的问题,我有两个设置(NFCNDEFReaderSession 和 NFCTagReaderSession),

\n\n

NFCNDEF阅读器会话:

\n\n
import UIKit\nimport CoreNFC\n\nclass ViewController: UIViewController {\n\n    var session: NFCNDEFReaderSession?\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        session = NFCNDEFReaderSession(delegate: self, queue: DispatchQueue.main, invalidateAfterFirstRead: false)\n        session?.begin()\n    }\n\n}\n\nextension ViewController: NFCNDEFReaderSessionDelegate {\n\n    func readerSessionDidBecomeActive(_ session: NFCNDEFReaderSession) {\n        print("active") // called once\n    }\n\n    func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {\n        print("didDetectNDEFs") // never called\n    }\n\n    func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {\n        print(error.localizedDescription) // only called on timeout\n    }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

NFCTagReader会话:

\n\n
import UIKit\nimport CoreNFC\n\nclass ViewController: UIViewController {\n\n    var session: NFCTagReaderSession?\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        session = NFCTagReaderSession(pollingOption: NFCTagReaderSession.PollingOption.iso14443, delegate: self, queue: DispatchQueue.main)\n        session?.begin()\n    }\n\n}\n\nextension ViewController: NFCTagReaderSessionDelegate {\n\n    public func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) {\n        print("active") // called once\n    }\n\n    public func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) {\n        print("didDetect") // never called\n    }\n\n    public func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) {\n        print(error.localizedDescription) // only called on timeout\n    }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的硬件(新):

\n\n

YARONGTECH Rfid 芯片 13.56 mhz MIFARE Classic\xc2\xae 1K 标签 - 10 件

\n\n

来自亚马逊:

\n\n

https://www.amazon.de/YARONGTECH-Classic%C2%AE-Schl%C3%BCsselanh%C3%A4nger-13-56MHz-ISO14443A/dp/B0749LSMLH/ref=sr_1_1?__mk_de_DE=%C3%85M%C3 %85%C5%BD%C3%95%C3%91&dchild=1&关键字=亚融科技+Rfid+芯片+13.56+mhz+MIFARE+Classic%C2%AE+1K+tag&qid=1592258266&s=diy&sr=1-1

\n\n

在这两种情况下,“didDetectNDEFs”和“didDetect”方法都不会被调用。

\n\n

我浏览了苹果文档:\n https://developer.apple.com/documentation/corenfc \n他们实际上声称这是可能的(用于检测 ISO7816、ISO15693、FeliCa 和 MIFARE 标签的读者会话。),但是如何呢? ..

\n\n

此人还声称他可以从这些 rfid 芯片中读取数据:\n使用 CoreNFC 检测 ISO/IEC 14443(Mifare Ultralight 或 Classic)NFC 卡

\n\n

仅当您知道答案时才回复

\n