簡體   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