HostApduService (NFC) 中的 Android 多线程

Posted

技术标签:

【中文标题】HostApduService (NFC) 中的 Android 多线程【英文标题】:Android multithreading in HostApduService (NFC) 【发布时间】:2015-07-09 09:59:12 【问题描述】:

我使用HostApduService 子类中的processCommandApdu() 方法对NFC 命令做出反应。此方法在 android 主线程上调用。这些命令应按顺序通过 NFC 通道进行处理和发送。因此,我想同步处理它们。

有没有什么好的方法可以强制执行顺序而不阻塞processCommandApdu() 方法?

【问题讨论】:

【参考方案1】:

您无需同步命令处理。排序是 ISO/IEC 14443 协议所固有的:命令交换总是由读卡器发送到卡(HCE 设备)的命令和卡 (HCE) 设备发送到读卡器的响应组成。在收到对前一个命令的响应之前,阅读器不会发出新命令。如果在读卡器收到响应之前命令超时,读卡器会将此解释为与卡的连接丢失。

因此,除非阅读器重置/断开连接,否则在您发送对前一个命令的响应(通过从 processCommandApdu() 返回 no-null 或通过调用 sendResponseApdu())之前,您不会收到新命令) .

【讨论】:

以上是关于HostApduService (NFC) 中的 Android 多线程的主要内容,如果未能解决你的问题,请参考以下文章

NFC技术:Android中的NFC技术

手机中的NFC功能,你会用么?附使用方法与技巧

NFC在Android中的应用

NFC技术:读写NFC标签中的Uri数据

iOS 13 和 Xcode 11 中的配置文件问题中缺少 NFC 标签协议

美国护照机读旅行证件中的 B 型 NFC 芯片