我想实现我的Android应用和NFC功能的亭之间的NFC通信。 我读过的文档和我的理解推送数据可以用2种方式进行:
- 通过前台NDEF推动API等级10〜13
- 通过从API级别14安卓波束
我想我可以通过第一个解决方案做我想做什么,但我想知道是否有可能使用Android Beam功能的Android设备和非Android设备之间?
谢谢你的帮助,
罗曼
我想实现我的Android应用和NFC功能的亭之间的NFC通信。 我读过的文档和我的理解推送数据可以用2种方式进行:
我想我可以通过第一个解决方案做我想做什么,但我想知道是否有可能使用Android Beam功能的Android设备和非Android设备之间?
谢谢你的帮助,
罗曼
虽然功能API 10之间的呼叫至13和14 APi的不同,实际的底层协议是几乎相同的。 在这两种情况下,NFC对等网络通讯使用LLCP完成。 在API 10〜13,所使用的实际的数据传输协议是NPP。 在API 14,SNEP被添加到这一点,但它会回落到NPP当其他设备不支持SNEP。
所以,当你的非Android设备在LLCP实现SNEP和/或NPP,它可以将数据传输到和从Android NFC设备接收数据。 对于读卡器设备SNEP和LLCP的几种实现存在,参见例如https://github.com/grundid/nfctools 。
我看着这对一个大学项目。
首先请不存在NFC 3种操作模式{卡读/写标签仿真和P2P通信}。 Android支持卡读/写和P2P通信。
与经由P2P非Android设备通信是相当复杂,因为必须使用NPP(NDEF推送协议)建立在LLCP(逻辑链路控制协议)。 你的非Android平台需要实现LLCP上要能沟通。 我不知道这是否已经为NFC做呢。 在NPP / LLCP执行情况的信息,可以发现这里
接下来的方法是使用卡读/写模式,在卡模拟模式下运行的非Android设备进行通信。 这样,您就可以发送APDU对仿真标签发送和接收数据。 我没有使用BlackBerry我的项目在扭转这一做法。 黑莓支持卡模拟,所以我使用的非Android设备(ACR122U)发送APDU对黑莓。
虽然第一种方法(P2P)显然是要走的理想方式,第二个可能是更容易实现。 它的工作非常好,我在我的应用程序,无论如何,我创建了一个通过NFC支付接受的系统。
请注意,ACR122U不具备NFC标签仿真良好的支持,因此不适合你。 该LibNFC网站是一个很好的开始找到支持标签仿真的设备。
我现在完成了这个项目,并使用ACR122U设备的伟大工程。 如果您需要在第二个方法任何帮助,请询问。
见初级讲座发行28014:启用NFC真正的P2P通信和禁用“触摸即可发送” UI选项
https://code.google.com/p/android/issues/detail?id=28014 Android的点对点剂量不会在所有的工作。