我想创建一个应用程序来通过 NFC 在 2 个设备之间交换信息。
我知道如何使用 Android Beam 让一部手机向另一部手机发送信息。我不知道的是,两部手机如何只需轻轻一按就可以互相发送数据。
这可能吗?如果是,如何?
我想创建一个应用程序来通过 NFC 在 2 个设备之间交换信息。
我知道如何使用 Android Beam 让一部手机向另一部手机发送信息。我不知道的是,两部手机如何只需轻轻一按就可以互相发送数据。
这可能吗?如果是,如何?
这取决于您要实现的目标以及您使用的 Android 版本:
两个设备都可以发送一个NDEF 消息,无需用户交互。消息不能相互依赖(即不可能一个设备发送消息而另一个设备对此发送答案)。您将使用 enableForegroundNdefPush()
和的组合enableForegroundDispatch()
来实现此目的。
两种设备都可以(理论上)每次触摸都发送一条NDEF 消息,但是两种设备都需要用户交互(即用户需要触摸 Beam UI)。此外,两个设备上的 Beam UI 几乎需要同时触摸。否则,另一台设备上的 Beam UI 将因收到 NDEF 消息而中断。因此,这个“解决方案”并不是真正可用的。您将使用 setNdefPushMessage*()
和的组合enableForegroundDispatch()
来实现此目的。
从 4.4 版开始,Android 有两个新功能:
当您结合这些功能时(即您在一个设备上有 HCE 主机卡仿真服务并将第二个设备置于读卡器模式),两个设备可以使用 ISO 7816-4 APDU相互通信(真正的双向通信) .
这是可能的,正如此处在线解释的那样。在与 SDK 一起提供的 API 演示中也有一个 API 演示讨论了这一点。
但是,请记住,NFC 的有效载荷非常小,您不太可能使用它传输任何可观的数据。NFC 应该用于快速设置蓝牙连接,或其他形式的无线传输,如 WiFi 直连,然后可用于传输大量数据。