だから私はWWDCでいたし、次のコードでアップルLabs社が提供するNFCカードを検出することができた:CoreNFCとISO/IEC 14443(Mifareの超軽量またはクラシック)NFCカードを検出
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 - 2つのコメント:1.)DESFireはType 4タグの1つの実装です。彼らはMIFARE Classicの直接の後継者ではありません。 NDEFはNFCライティングデバイス(Android Phoneなど)を持っている人なら誰でも変更できるため、すべてのキーを変更しないでおくことは悪い習慣です。だから、それをロックすることができ、タグを使用することが間違いなく良いです。あなたのコメントのための – ErikM
ありがとう!とにかく暗号化キーに関する私の発言は間違っていた。 NDEF仕様は、キーAがNDEFの使用のための特定の値に変更されることを要求します。私の一般的なArduinoの読者は、これらの工場出荷時のデフォルト以外のキーはチェックしておらず、タグを読めないと報告しました。同時に、iPhoneはタグを読み取ることができませんでしたが、NDEF用に100%正しくフォーマットされていない可能性が高いためです。私は誤ってキーが読み取り失敗の理由であると結論付けました。 – Martin