Android HostApduService 中的多线程 (NFC)
Android multithreading in HostApduService (NFC)
我在 HostApduService
的子类中使用 processCommandApdu()
方法来响应 NFC 命令。此方法在 Android 主线程上被调用。这些命令应按顺序处理并通过 NFC 通道发送。因此,我想同步处理它们。
有什么好的方法可以在不阻塞 processCommandApdu()
方法内部的情况下强制执行顺序?
您不需要同步命令处理。排序是 ISO/IEC 14443 协议固有的:命令交换总是由 reader 发送到卡(HCE 设备)的命令和卡(HCE)设备发送到 reader。 reader 在收到对前一个命令的响应之前不会发出新命令。如果命令在 reader 收到响应之前超时,reader 会将此解释为与卡的连接丢失。
因此,除非 reader resets/drops 连接,否则在您发送对前一个命令的响应之前不会收到新命令(通过从 [=10 返回 no-null =]) 或调用 sendResponseApdu()
).
我在 HostApduService
的子类中使用 processCommandApdu()
方法来响应 NFC 命令。此方法在 Android 主线程上被调用。这些命令应按顺序处理并通过 NFC 通道发送。因此,我想同步处理它们。
有什么好的方法可以在不阻塞 processCommandApdu()
方法内部的情况下强制执行顺序?
您不需要同步命令处理。排序是 ISO/IEC 14443 协议固有的:命令交换总是由 reader 发送到卡(HCE 设备)的命令和卡(HCE)设备发送到 reader。 reader 在收到对前一个命令的响应之前不会发出新命令。如果命令在 reader 收到响应之前超时,reader 会将此解释为与卡的连接丢失。
因此,除非 reader resets/drops 连接,否则在您发送对前一个命令的响应之前不会收到新命令(通过从 [=10 返回 no-null =]) 或调用 sendResponseApdu()
).