我如何知道NFC护照芯片读取哪个数据组?



我正在阅读德国电子护照,它也正在读取数据组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)
}
}

希望对你有帮助

最新更新