我正在阅读德语电子护照,也在阅读1,2,3&14数据组以及SOD和COM。现在,我想阅读包含其他详细信息的数据组11。但是,德国护照不会读取可选数据。那么,我怎么知道哪些护照读哪些组?我已通过ICAO 9303,但没有任何机会获得此信息。
在我的应用中,我阅读了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) } }
希望有帮助