如何避免 NFCError 代码=203 "Session is invalidated due to system resource is unavailable"?



当我尝试启动CoreNFC会话时,它首先可以工作,但几次后,我收到一条错误消息:

错误域 = NFCE 代码 = 203"由于系统资源不可用,会话无效">

我重新启动iPhone之前,无法再读取NFC标签。

为什么会发生此错误?我该怎么做才能避免它?

阅读完 NDEF 后尝试添加此行:

[会话无效会话];

或在 Swift 中:

session.invalidate((

鲍里斯在回答以下内容时提到了这个技巧:iOS 11 核心 NFC - 任何示例代码?

显然,如果您不使会话对象无效,它并不总是释放资源。 几个月来我没有问题,然后突然几天前它开始一直这样做。 这似乎已经解决了它。

让我们知道它是否适合您;最好有多个数据点。

我找到了问题的解决方案:

发生了什么事情?当我通过倒置按住iPhone来启动NFC阅读器会话时,当应用程序处于非活动状态时,也会传递UIDeviceOrientationDidChangeNotification。发生这种情况时,iOS无法启动NFC读取会话,并且可能会记录问题,并且在iPhone重新启动之前甚至不会尝试。

解决方案:在启动 NFC 读取器会话之前,请确保应用程序处于活动状态:

[[UIApplication sharedApplication] applicationState] == UIApplicationStateActive

相关内容

最新更新