Swift NFC Mifare - NFCISO7816APDU sendMifare Command not supported(SWIFT NFC MIFARE-不支持NFCISO7816APDU sendMifare命令)
本文介绍了SWIFT NFC MIFARE-不支持NFCISO7816APDU sendMifare命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试写入MIFARE Ultraalight NFC,但收到以下错误:
Optional(Error Domain=NFCError Code=1 "Feature not supported" UserInfo={NSLocalizedDescription=Feature not supported})
我正在使用此代码编写:
if case let NFCTag.miFare(tag) = tags.first! {
let dataMifare: [UInt8] = [240, 0, 0, 0] // READ page 4 + CRC
let dataPacketMifare = Data(bytes: dataMifare, count: dataMifare.count)
session.connect(to: tags.first!) { (error: Error?) in
let apdu = NFCISO7816APDU(instructionClass: 0xFF, instructionCode: 0xD6, p1Parameter: 0x00, p2Parameter: 0xFF, data: dataPacketMifare, expectedResponseLength: 0x02)
tag.sendMiFareISO7816Command(apdu) { (apduData, sw1, sw2, error) in
let tagUIDData = tag.identifier
session.invalidate(errorMessage: "Test")
debugPrint(apduData)
debugPrint(error)
debugPrint(tag.identifier)
我的Info.plist文件:
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
<string>D2760000850100</string>
<string>D2760000850101</string>
</array>
<key>com.apple.developer.nfc.readersession.formats</key>
<array>
<string>NDEF</string>
<string>TAG</string>
</array>
我正在写入一个自定义设备,其中的值&0xFF";表示写入请求。 如果我使用0x00;更改该值,则它可以工作,但对于我设备而言,这是一个读取请求
是我做错了什么,还是iOS 13.0不支持在MIFARE上写入请求?
我使用的是Xcode 12.2、iOS 13.0和iPhone 11。
提前感谢您的帮助
更新1安德鲁回复
这是我的代码:
func handlerResponse(Result: Result< Data, Error>){
print("error")
}
let dataMifareTest: [UInt8] = [0xF0, 0, 0, 0]
let dataPacketMifareTest = Data(bytes: dataMifareTest, count: dataMifareTest.count)
tag.sendMiFareCommand(commandPacket: dataPacketMifareTest, resultHandler: handlerResponse)
但我收到以下错误:
NFCTagReader[516:101552] [CoreNFC] 00000002 83fd0090 -[NFCTagReaderSession transceive:tagUpdate:error:]:771 Error Domain=NFCError Code=100 "Tag connection lost" UserInfo={NSLocalizedDescription=Tag connection lost}
推荐答案
问题是您发送的没有负载数据。 数组[0xF0,0,0,0]只有页面请求。 错误:
NFCTagReader[516:101552] [CoreNFC] 00000002 83fd0090 -[NFCTagReaderSession transceive:tagUpdate:error:]:771 Error Domain=NFCError Code=100 "Tag connection lost" UserInfo={NSLocalizedDescription=Tag connection lost}
是格式错误的请求。
这篇关于SWIFT NFC MIFARE-不支持NFCISO7816APDU sendMifare命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:SWIFT NFC MIFARE-不支持NFCISO7816APDU sendMifare命令


基础教程推荐
猜你喜欢
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01