Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Galaxy S3和ACR122之间的P2P NFC通信_Java_Android_Nfc_Android Beam_Nfc P2p - Fatal编程技术网

Java Galaxy S3和ACR122之间的P2P NFC通信

Java Galaxy S3和ACR122之间的P2P NFC通信,java,android,nfc,android-beam,nfc-p2p,Java,Android,Nfc,Android Beam,Nfc P2p,我正在做一个项目,需要在android手机和PC之间进行NFC通信。我使用Galaxy S3作为android手机,ACR122作为NFC阅读器。我已经在和尝试了这些应用程序 我使用android sdk中的示例应用程序通过NFC发送NDEF消息 无论我尝试了多少次,我都无法在手机和PC之间建立连接。Android应用程序运行良好,因为它可以通过其他手机推送NDEF消息,但当涉及到连接PC时,它不起作用。当我用手机触摸读卡器时,读卡器上的Led从红色变为闪烁的绿色和橙色,但没有其他变化 有ism

我正在做一个项目,需要在android手机和PC之间进行NFC通信。我使用Galaxy S3作为android手机,ACR122作为NFC阅读器。我已经在和尝试了这些应用程序

我使用android sdk中的示例应用程序通过NFC发送NDEF消息

无论我尝试了多少次,我都无法在手机和PC之间建立连接。Android应用程序运行良好,因为它可以通过其他手机推送NDEF消息,但当涉及到连接PC时,它不起作用。当我用手机触摸读卡器时,读卡器上的Led从红色变为闪烁的绿色和橙色,但没有其他变化

有ismb npp java应用程序的日志输出:

得到工厂

获取终端

终端名称:ACS ACR122 0

T=1

称为rightProcedureTarget

[调试]{发送[50字节]}0xFF 0x00 0x00 0x00 0x2D 0xD4 0x8C 0x01 0x00 0x00 0x00 0x00>0x00 0x40 0x01 0xFE 0x0F 0xBB 0xBA 0xA6 0xC9 0x89 0x00 0x00 0x00 0x00 0x00 0x00 0x00>0xFF 0x01 0xFE 0x0F 0xBB 0xA6 0xC9 0x89 0x00 0x00 0x06 0x46 0x66 0x6D 0x01 0x01>0x10 0x00

it.ismb.npp.IsmbNppException:传输数据时出现问题

[调试]{发送[7字节]}0xFF 0x00 0x00 0x00 0x02 0xD4 0x86

[调试]{发送[26字节]}0xFF 0x00 0x00 0x00 0x15 0xD4 0x8E 0x05 0x20 0x06 0x0F 0x63>0x6F 0x6D 0x2E 0x61 0x6E 0x64 0x72 0x6F 0x69 0x64 0x2E 0x6E 0x70 0x70

ismbnpconnection.transceive(ismbnpconnection.java:281)

位于it.ismb.npp.ismbnpconnection.rightProcedureTarget(ismbnpconnection.java:301)

位于it.ismb.npp.SenderToPhone$ThreadSender.run(SenderToPhone.java:90)

位于it.ismb.npp.SenderToPhone$InitiatorTask.run(SenderToPhone.java:75)

位于java.util.TimerThread.mainLoop(未知源)

在java.util.TimerThread.run处(未知源)

it.ismb.npp.IsmbNppException:传输数据时出现问题

ismbnpconnection.transceive(ismbnpconnection.java:281)

位于it.ismb.npp.ismbnpconnection.rightProcedureTarget(ismbnpconnection.java:306)

位于it.ismb.npp.SenderToPhone$ThreadSender.run(SenderToPhone.java:90)

位于it.ismb.npp.SenderToPhone$InitiatorTask.run(SenderToPhone.java:75)

位于java.util.TimerThread.mainLoop(未知源)

在java.util.TimerThread.run处(未知源)

线程“Timer-0”java.lang.IllegalStateException中出现异常:卡已被删除

位于sun.security.smartcardio.CardImpl.checkState(未知源)

在sun.security.smartcardio.ChannelImpl.checkClosed(未知来源)

在sun.security.smartcardio.ChannelImpl.transmit(未知来源)

ismbnpconnection.transceive(ismbnpconnection.java:263)

位于it.ismb.npp.ismbnpconnection.rightProcedureTarget(ismbnpconnection.java:317)

位于it.ismb.npp.SenderToPhone$ThreadSender.run(SenderToPhone.java:90)

位于it.ismb.npp.SenderToPhone$InitiatorTask.run(SenderToPhone.java:75)

位于java.util.TimerThread.mainLoop(未知源)

在java.util.TimerThread.run处(未知源)

我已经使用了我能找到的所有驱动程序(包括最新的驱动程序),但问题仍然存在


设备可能有问题吗?还是我在这里遗漏了什么?

你在运行什么版本的Android?NPP只适用于旧版本的Android(我相信是ICS之前的版本)

对于ICS和JellyBean,尝试使用SNEP协议。您正在使用的项目的作者在此处有SNEP的版本:


尝试此操作以获取NfcAdapter

nfcP2PAdapter=NfcAdapter.getDefaultAdapter(recentContext.getApplicationContext())

//recentContext是活动(此)


它对你有用,对我有用你所说的错误来自NppConnection.java中的收发器方法。我建议您首先将手机放在读卡器上(让读卡器的LED变为绿色),然后再次运行应用程序。看看这是否有效。如果没有,则在收发器方法中放置一个断点,并检查SW1和SW2的值(如果命令成功,您将期望SW1=0x90和SW2=0x00)。如果出现错误,您将得到sw2不等于0x00或sw1=0x63


据我所知,即使您使用的是较新版本的android,并且您的任何一台设备都不支持snep,它们也会退回到NPP。

您的设备是否可以用于读卡等?阿尔索tryhttp://www.libnfc.org 对于P2P。