在没有启用android beam的情况下,onNewIntent不会被调用用于android nfc实现
-
21-12-2019 - |
题
我一直在研究nfc样品。 Peer-To-Peer
模式。我已经实现了 onResume
方法以两种不同的方式,对于发起者模式和目标模式如下:
对于启动器模式:
mAdapter.setNdefPushMessage(getTestNdefMessage(), this);
而对于目标模式:
mAdapter.enableForgroundDispatch(this, pendingIntent, null, null);
我做了一个android手机作为发起者和其他作为目标,并把他们背靠背。在这里,我可以听NFC设备检测声音,但没有收到任何呼叫到 onNewIntent
在android手机上设置为目标模式。
任何人都可以帮助我在哪里我错了,在概念或实施。如果我启用 Android NFC Beam
从 settings
比我收到的通知更多 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。
不隶属于 StackOverflow