是否可以通过一键触摸两个Android设备通过NFC交换数据?

时间:2014-05-22 19:26:30

标签: android nfc hce nfc-p2p android-beam

我想创建一个应用程序,通过NFC在两台设备之间交换信息。

我知道如何使用Android Beam让一个移动设备向另一个移动设备发送信息。我不知道的是,只需轻轻一按,两部手机就可以相互发送数据。

这可能吗?如果是,怎么样?

2 个答案:

答案 0 :(得分:3)

这取决于您要实现的目标以及您正在使用的Android版本:

两款兼容Android<的设备4.0

两个设备都可以发送一个 NDEF消息,无需用户交互。消息不能相互依赖(即,一个设备发送消息并且另一个设备发送消息的可能性不大)。您可以使用enableForegroundNdefPush()enableForegroundDispatch()的组合来实现此目标。

至少有一台Android< 4.4

两个设备都可以(理论上)每次触摸发送一个 NDEF消息,但两个设备都需要用户交互(即用户需要触摸Beam UI)。此外,两个设备上的Beam UI需要同时触及 。否则,由于收到的NDEF消息,其他设备上的Beam UI将被中断。因此,这个"解决方案"是不是真的可用。您可以使用setNdefPushMessage*()enableForegroundDispatch()的组合来实现此目标。

这两款设备均采用Android 4.4 +

从4.4版开始,Android有两个新功能:

当您将这些功能组合在一起时(即您在一台设备上安装了HCE主机卡仿真服务并将第二台设备置于阅读器模式),两台设备之间可以相互通信(真正的双向通信< / strong>)使用ISO 7816-4 APDU。

答案 1 :(得分:0)

这是可能的,如在线here所述。 SDK中提供的API演示中还有一个API演示,可以对此进行讨论。

但是,请记住,NFC的有效负载大小非常小,而且您不太可能使用它传输任何大小的数据。 NFC应该用于快速设置蓝牙连接,或者像WiFi direct这样的其他形式的无线传输,然后可以用来传输更大量的数据。