Android NFC:SNEP协议和P2P响应

时间:2012-01-04 10:28:42

标签: android nfc nfc-p2p

我正在尝试在两部Android手机之间实现P2P通信(其​​中一部手机最终会被独立设备取代)。我已经看到Android 4支持由NFC论坛发布的SNEP,应该可以在非Android设备上使用。

我已经关注了NFC P2P的Google教程(http://developer.android.com/guide/topics/nfc/nfc.html#p2p),我可以从一部手机向另一部手机发送一些信息,但我有几个问题:

  1. Android Beam只是NFC的名称,或者是在SNEP / NPP上运行的Android协议?如果是协议,如何在没有Beam的情况下进行NFC P2P?
  2. 如何设置SNEP的使用?
  3. 初始化连接时如何向其他设备发送响应(收到第一条消息)?
  4. 感谢您的帮助!!!

3 个答案:

答案 0 :(得分:2)

Android Beam只是一个名字,对。设备默认使用SNEP,如果失败,则尝试NPP。您无法真正从接收设备向发件人发送响应。您只能使用回调来获得成功推送的通知:

http://developer.android.com/reference/android/nfc/NfcAdapter.OnNdefPushCompleteCallback.html

答案 1 :(得分:0)

ismb-snep-java's Google Code page解释了使用SNEP协议的通信和数据传输,我已对其进行了测试,但它确实有效。在从ACR和Android搜索PDF后,我相信你只需要做一些调整就可以按照你想要的方式工作。

答案 2 :(得分:0)

要给出更明确的解释:

Android Beam只是NFC的名称,还是在SNEP / NPP上运行的Android协议?如果它是一个协议,如何在没有Beam的情况下进行NFC P2P?

Android beam是Android OS的一项功能。它是SNEP / NPP之上的高级NDEF消息交换机制。 目前,点对点模式(在Android上)只能通过Android Beam访问,而不能用于双向通信。

如何设置SNEP的使用?

如果您想在Android上使用SNEP,(我认为)唯一的方法是在ISO-DEP协议之上编写您自己的SNEP实现。 因为SNEP位于LLCP之上,您还需要创建自己的LLCP实现。那不容易..

初始化连接时如何向其他设备发送响应(收到第一封邮件)

使用SNEP,你不能。正如@robertly所说,它只能创建一个回调消息。 如果您想要真正的双向通信,请使用读写器和卡仿真操作模式。