NFC Peer 2 Peer模式與NFC Card Reader模式不同。
如果要在兩個Android應用程序之間發送數據,您需要使用Android Beam以對等2對等模式運行。
從這裏開始閱讀約LLCP
and SNEP
protocols。
基本上你需要的是使用Android回調方法將NDEFMessage
從一個設備發送到另一個設備。
要通過Android Beam發送NDEFMessage
您需要實現這兩個接口:
CreateNdefMessageCallback
OnNdefPushCompleteCallback
進入createNdefMessage()
方法必須創建並返回一個NDEFMessage
發送(here你可以找到的說明)。
進入onNdefPushComplete()
方法你可以在NDEFMessage
上做些什麼來完成發送。
你需要的是識別哪個設備將作爲啓動器,然後到createNdefMessage()
你應該返回一個NDEFMessage發送到其他設備。
在接收設備上(在名爲目標設備的NFC中),您應該將NDEFMessage
接收到Activity.onNewIntent(Intent intent)
中並對其進行管理。
之後,你可以在另一邊做同樣的事情。
理論上使用SNEP協議,您應該可以發送SNEP GET請求,但在Android上,此功能已被禁用。在這裏,您可以閱讀關於Android SNEP implementation
的記錄請記住,要能夠接收NDEFMessage,您必須在manifest.xml中定義一個IntentFilter,以指定您的活動必須「截取」哪個NDEFMessage。這是抓AndroidApplicationRecord NDEFMessage一個例子:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/com.example.android.beam" />
</intent-filter>
入住這Android Beam Example
希望幫助
你在同樣的方式解決了嗎? – firegloves
你是什麼意思??我沒有解決它。現在我只能向一個方向發送(通過讀取模擬卡)。 – Han
我會知道你已經嘗試過並發現了一個帶有apdu命令的解決方案,如果是的話請讓我知道 – firegloves