6

我正在尝试在两部 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 回答 3

2

Android Beam 只是一个名称,没错。设备默认使用 SNEP,如果失败,它会尝试 NPP。您无法真正从接收设备向发送者发送响应。您只能使用回调来通知推送成功:

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

于 2012-01-10T19:49:17.283 回答
0

ismb-snep-java 的 Google 代码页面解释了使用 SNEP 协议的通信和数据传输,我已经对其进行了测试并且它可以工作。在从 ACR 和 Android 搜索 PDF 之后,我相信您只需要花一些时间就可以让它按照您想要的方式工作。

于 2012-09-14T09:30:05.197 回答
0

为了更清楚地解释:

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

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

如何设置使用SNEP?

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

初始化连接时如何向其他设备发送响应(收到第一条消息)

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

于 2014-09-26T11:59:27.887 回答