6

我正在使用非接触式阅读器与我的 Android 设备进行通信。

我观察到任何时间点我都无法使用 P2P 连接到我的 Android 设备。如果我想连接以启动 Android Beam 传输,我必须在一秒钟内连续尝试多次连接到设备。

NFC Android 设备可以检测非接触式卡、NFC P2P 目标和 NFC P2P 发起方,即 3 种不同的模式。我开始认为幕后正在进行某种轮询,可以在三种模式之间快速切换。

这意味着在我尝试连接手机的任何给定时间点,它可能处于也可能不处于正确模式并且会失败。这就是为什么我需要尝试多个连接。

我一直在查看 Android 源代码,试图在没有真正运气的情况下解决这个问题。是我见过的最有前途的文件,但它仍然没有意义。

我的问题是:Android 如何检测多种 NFC 模式,它是否使用切换算法,如果是,算法的细节是什么?

谢谢。

4

1 回答 1

6

我开始认为幕后正在进行某种轮询,可以在三种模式之间快速切换。

正是这种情况正在发生。不同的技术得到时间复用。不过,它远不止三种模式。通常,NFC 设备将轮询:

  • 读卡器 ISO14443 A
  • 读卡器 ISO14443 B
  • 阅读器 FeliCa(又名标签类型 3)
  • 读卡器 ISO15693
  • 卡模拟 ISO14443 A
  • 卡模拟 ISO14443 B
  • 卡模拟费利卡

Peer-to-Peer 模式使用 Reader A、Reader FeliCa 作为发起者。Card emulation A 和 Card emulation Felica 也被用作 Peer-to-Peer Target 模式技术。

投票的确切时间是不公开的,你不会在源代码中找到太多关于它的信息。这是由 NFC 芯片在内部处理的。

于 2013-07-24T06:25:09.157 回答