我一直在研究nfc样品。 Peer-To-Peer 模式。我已经实现了 onResume 方法以两种不同的方式,对于发起者模式和目标模式如下:

对于启动器模式:

mAdapter.setNdefPushMessage(getTestNdefMessage(), this);

而对于目标模式:

mAdapter.enableForgroundDispatch(this, pendingIntent, null, null);

我做了一个android手机作为发起者和其他作为目标,并把他们背靠背。在这里,我可以听NFC设备检测声音,但没有收到任何呼叫到 onNewIntent 在android手机上设置为目标模式。

任何人都可以帮助我在哪里我错了,在概念或实施。如果我启用 Android NFC Beamsettings 比我收到的通知更多 Initiator 用于 Touch to Beam.在这种情况下,我接到一个电话 onNewIntent.

任何方向都会有所帮助。

有帮助吗?

解决方案

安卓光束 Android唯一的点对点通信功能。因此,当您禁用Android Beam时,您的设备将无法通过对等模式发送或接收消息。因此, onNewIntent (等)如果Beam被禁用,将两部手机放在一起时不会开火。

Android Beam是在NFC论坛的标准对等模式协议栈之上实现的:

+--------------------------------------------+
| Android Beam                               |
+--------------------------------------------+
| NDEF (NFC Data Exchange Format)            |
+--------------------------------------------+
| SNEP (Simple NDEF Exchange Protocol)       |
| (or NDEF Push Protocol (NPP) for backwards |
| compatibility to pre-SNEP Android devices) |
+--------------------------------------------+
| LLCP (Logical Link Control Protocol)       |
+--------------------------------------------+
| NFCIP-1 (ISO/IEC 18092)                    |
+--------------------------------------------+

(您使用的术语"启动器"和"目标"仅与NFCIP-1层相关。通常,这两个部分都将在NFC设备上实现,两个NFC设备将(有点自动地)就谁担任发起者角色和谁担任目标角色达成一致。)

因此,您通常会实现SNEP之前的所有层,以便与具有Beam的Android设备进行通信。Windows Phone8和Blackberry已经实现了用于对等NDEF数据交换的SNEP。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top