Android设备和其他NFC设备之间是否可以使用Android Beam?

我想在我的Android应用程序和启用了NFC的自助服务terminal之间实现NFC通信。 我已经阅读了文档 ,我理解推送数据可以通过两种方式完成:

  • 通过前景NDEF推动API等级10至13
  • 通过来自API级别14的Android Beam

我想我可以做我想通过第一个解决scheme,但我想知道是否有可能在Android设备和非Android设备之间使用Android Beam?

谢谢你的帮助,

罗曼

Solutions Collecting From Web of "Android设备和其他NFC设备之间是否可以使用Android Beam?"

尽pipeAPI 10至13与APi 14之间的函数调用不同,但实际的底层协议几乎相同。 在这两种情况下,使用LLCP完成NFC点对点通信。 在API 10到13中,使用的实际数据传输协议是NPP。 在API 14中,增加了SNEP,但是当另一个设备不支持SNEP时,它将回退到NPP。

因此,当您的非Android设备通过LLCP实现SNEP和/或NPP时,它可以将数据传输到Android NFC设备并从中接收数据。 存在用于读卡器设备的SNEP和LLCP的多个实现,例如参见https://github.com/grundid/nfctools

我看着这个大学项目。

首先请注意,NFC操作有三种模式{读卡/写卡,标签模拟和P2P通讯}。 Android支持卡片读/写和P2P通信。

通过P2P与非Android设备进行通信非常复杂,因为您必须使用build立在LLCP(逻辑链路控制协议)上的NPP(Ndef Push Protocol)。 您的非android平台将需要实施LLCP才能进行通信。 我不确定NFC是否已经完成。 有关NPP / LLCP实施的信息可以在这里find

下一个方法是使用卡读/写模式与在卡模拟模式下运行的非Android设备进行通信。 这样,您可以将APDU发送到仿真标签来发送和接收数据。 我在我的项目中使用黑莓做了这个方法。 BlackBerry支持卡模拟,因此我使用非Android设备(ACR122U)将APDU发送到BlackBerry。

虽然第一种方法(P2P)显然是理想的方法,但第二种方法可能更容易实施。 无论如何,它在我的应用程序中工作得非常好,我创build了一个接受NFC支付的系统。

请注意,ACR122U不支持NFC标签仿真,因此不适合您。 LibNFC网站是一个很好的开始find一个支持标签仿真的设备。

我现在已经完成了这个项目,使用ACR122U的设备效果很好。 如果您需要第二种方法的帮助,请询问。

请参阅以下问题28014:启用真正的NFC p2p通信,并禁用“触摸梁”UI
https://code.google.com/p/android/issues/detail?id=28014 Android Peer to Peer完全不起作用。