【发布时间】:2014-01-16 22:55:43
【问题描述】:
我正在做一个将 pn532 与 nfc 手机连接的学校项目。我正在使用 seeedstudio nfc 控制器和他们拥有的库,并添加了一些代码。我的问题与协议的连接和发现阶段有关。
问题1:当发起者向DSAP = 1“发现服务”发送CONNECT命令时如何响应。下面我解释一下协议的结果。
用于测试的手机是(gs4,注 2):
情况1:
- 手机发给我05 20 06 这是一个CONNECT命令到接收设备中的SAP =1,然后我用CC命令响应81 84 2 2 0 78.
- 然后他们在前台向我发送了一个带有应用程序 URI 的 IPDU,我继续按照 nfc 论坛中的 llcp-snep 协议发送命令,一切都结束了。 *问题是我不希望前台应用程序的 URI,而是需要该应用程序的 NDEF 消息 数据。*
情况2:
- 手机发送到 pn532 11 20 ,这是对接收设备中 SAP =4 的 CONNECT 命令,然后我用命令 CC 81 84 2 2 0 78。
-
在此之后,手机按原样向我发送 NDEF 数据。
现在我的问题是:
为什么电话有时会向我发送 CONNECT 命令到 SAP =1,有时会向 SAP=4 发送?
05 20 06 我必须响应什么命令?
【问题讨论】:
-
关于情况 1:难道您没有向我们展示作为连接 PDU 的一部分接收到的所有字节吗?
06不是有效的参数 TLV。难道你真的收到了05 20 06 0F 75 72 6E 3A 6E 66 63 3A 73 6E 3A 73 6E 65 70? -
这两种情况是分别发生在一个特定设备上还是随机发生在两个设备上?
-
另外,在不起作用的情况下如何设置应该交换的 NDEF 消息?
-
我希望收到与 SNEP 服务的连接,但我收到的是:20 5 20 6 1C 75 72 6E 3A 6E 66 63 3A 78 73 6E 3A 73 61 6D 73 75 6E 67 2E 63 6F 6D 3A 62 61 6E 64 正如我在下面写的,这是要求连接到 uri urn:nfc:xsn:samsung.com:band。我真的不知道它是什么,但是我在浏览器上输入了 uri,它把我带到了 samsung.com/band。这是用于国家/地区选择的三星网址。我现在想知道如何拒绝这项服务并告诉手机我想要的是通过默认 SNEP 服务器进行通信。继续在 GS4 上,在注释 2 上随机,从不在 GS3 上。
-
好的,所以您肯定不想连接该服务。有关如何拒绝该请求,请参阅 NFC 论坛的 LLCP 规范。之后设备可能会连接SNEP服务。
标签: nfc-p2p