繁体   English   中英

如何从Android发送SNEP GET请求

[英]How to a send SNEP GET request from Android

我有一个NFC阅读器ACS ACR122U,我想从我的Android手机向它发送数据。

我发现了许多示例,这些示例说明了如何以P2P模式连接两个设备以及如何将数据从手机发送到ACR122U,但是台式机服务器(ACR122U)始终会收到SNEP PUT请求。 我会发送GET请求,但是我只能找到使用NDEF系统内置的Android的示例,而无需指定PUT或GET请求。

如何将SNEP GET请求从我的Android设备打包并发送到ACR122U?

简短的回答:不能。

Android API不允许您实施自定义LLCP服务。 在Android设备上实现的唯一LLCP服务是NFC论坛默认SNEP服务器(服务名称urn:nfc:sn:snep ,服务访问点地址4),以及出于传统原因,Android NDEF推送协议(与SNEP类似,但可以追溯到到SNEP规范发布之前的时间)。

尽管SNEP协议规范定义了GET请求以从另一台设备提取NDEF消息,但NFC论坛默认SNEP服务器被定义为仅接受PUT请求。 GET请求必须被该SNEP服务器拒绝。

从NFC论坛简单NDEF交换协议技术规范(版本1.0):

默认的SNEP服务器提供逻辑收件箱。 连接到默认服务器的客户端可以使用“放置请求”消息将NDEF消息放入收件箱。 [...]

默认服务器将不接受Get请求。 获取请求消息的适当响应未实现。

因此,您只能将NDEF消息推送到NFC论坛默认SNEP服务器,而不能反过来。

因此, 如果要通过对等模式 NDEF消息发送 Android设备,则需要在ACR122U端实现SNEP 客户端。 然后,您可以让该客户端连接到Android设备上的SNEP服务器(服务名称为urn:nfc:sn:snep ),并使用PUT请求urn:nfc:sn:snep推送NDEF消息。

如果要通过对等模式 Android设备接收 NDEF消息,则需要在ACR122U端实现SNEP 服务器 然后,Android SNEP客户端将连接到您的SNEP服务器,并再次使用PUT请求将等待的NDEF消息(例如,通过NfcAdapter.setNdefPushMessage()注册NfcAdapter.setNdefPushMessage()推送到该客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM