我怎么知道NFC护照芯片读取了哪个数据组?

问题描述 投票:0回答:1

我正在阅读德语电子护照,也在阅读1,2,3&14数据组以及SOD和COM。现在,我想阅读包含其他详细信息的数据组11。但是,德国护照不会读取可选数据。那么,我怎么知道哪些护照读哪些组?我已通过ICAO 9303,但没有任何机会获得此信息。

ios iphone nfc core-nfc
1个回答
0
投票

在我的应用中,我阅读了DG32,DG33,DG34,但是流程相同,这是一些有关如何使用NFCPassportReader来实现DG11文件读取的示例。>

public class DataGroup {

    public var elements: [String: String] = [:]   

//我添加了这本词典,以便从文档中通过键获得价值

class DG11: DataGroup {

        private let tags = [0x5F0E, 0x5F0F, 0x5F10, 0x5F11, 0x5F2B]

        required init(_ data: [UInt8]) throws {
            try super.init(data)
            datagroupType = .DG11
        }

        override func parse(_ data: [UInt8]) throws {
            var tag = try getNextTag()
            if tag != 0x5C { throw TagError.InvalidResponse }
            _ = try getNextValue()
            try tags.forEach { _ in
                tag = try getNextTag()
                parseBody(try getNextValue(), key: String(tag, radix: 16, uppercase: true))
            }
            print(elements)
        }

        private func parseBody(_ data: [UInt8], key: String) {
            elements[key] = String(bytes: data[0...], encoding: .utf8)
        }

    }

希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.