是否可以通过 NFC 一键式让两台 Android 设备交换数据?

die*_*ves 5 android nfc android-beam nfc-p2p hce

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

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

这可能吗?如果是,如何?

Mic*_*and 4

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

两台设备均搭载 Android < 4.0

两台设备都可以发送一条NDEF 消息,无需用户交互。这些消息不能相互依赖(即,一个设备发送消息而另一个设备发送对此消息的答复是不可能的)。enableForegroundNdefPush()您可以使用和的组合 enableForegroundDispatch()来实现此目的。

至少一台 Android < 4.4 的设备

两台设备(理论上)每次触摸都可以发送一条NDEF 消息,但是两台设备都需要用户交互(即用户需要触摸 Beam UI)。此外,两台设备上的 Beam UI 几乎需要同时触摸。否则,其他设备上的 Beam UI 将因收到 NDEF 消息而中断。因此,这个“解决方案”实际上并不可用。setNdefPushMessage*()您可以使用和的组合 enableForegroundDispatch()来实现此目的。

两台设备均搭载 Android 4.4+

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

当您组合这些功能时(即,您在一台设备上拥有 HCE 主机卡模拟服务并将第二台设备置于读卡器模式),两台设备都可以使用 ISO 7816-4 APDU相互通信(真正的双向通信) 。