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