我正在尝试将我的Android平板电脑连接到使用NFC的设备,并从设备中检索数据.
我试过的
按照nfc_device_detection_1.01.pdf(第4章)中的说明发送命令
transceive() 的androID java doc提到了
“应用程序不得将SoD(长度)或EoD(CRC)附加到有效载荷,它将自动计算”
因此我尝试使用和不使用CRC,有和没有数据包数据长度,但文档不清楚我是否应该留空或如果我不应该包括它.
我采取的另一种方法是遵循format_sequence_guidelines_1.1.pdf第2.2章(同步代码后跟请求)中的图表,但结果相同.
问题
我不知道将什么命令(字节)作为参数发送到transceive()方法.**
问题
有没有人:
>举一个NFCF通讯的例子?
>有关于应该使用的协议/命令的更多信息?
>知道NFC标签是否包含命令所需的字节数?
码
transceive()抛出IO异常“标签丢失”.
我相信这是因为我的命令字节不正确(我使用了一系列不同的命令).
最后的注释(我也厌倦了在一个while循环中放置收发()并且每次关闭并连接通信)
String action = intent.getAction(); if (NfcAdapter.ACTION_TECH_disCOVERED.equals(action)) { Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); NfcF nfcf = NfcF.get(tag); nfcf.connect(); byte[] command = new byte[] { (byte) 0x00, (byte) 0x00}; byte[] response = nfcf.transceive(command); }
如果您的答案需要任何其他信息,请发表评论.谢谢.
解决方法:
以下是给定目标设备(标记)IDm,FeliCa命令字节和有效负载时如何发送“原始”命令的示例函数:
byte[] rawCmd(NfcF nfcF, byte[] IDm, byte felicaCmd, byte[] payload) throws IOException { final int len = payload != null ? payload.length : 0; final byte[] cmd = new byte[10 + len]; cmd[0] = (byte) (10 + len); cmd[1] = felicaCmd; System.arraycopy(IDm, 0, cmd, 2, IDm.length); if (payload != null) { System.arraycopy(payload, 0, cmd, 10, payload.length); } nfcF.transceive(cmd);}
总结 以上是内存溢出为你收集整理的Android NFC收发()使用NFCF技术(Sony Felica)全部内容,希望文章能够帮你解决Android NFC收发()使用NFCF技术(Sony Felica)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)