AndroidフォンとPCの間のNFC通信を必要とするプロジェクトに取り組んでいます。AndroidフォンとしてGalaxy S3を、NFCリーダーとしてACR122を使用しています。こことここでアプリケーションを試しました。
Android SDK にあるサンプル アプリケーションを使用して、NFC 経由で NDEF メッセージを送信しました。
何度やってもスマホとパソコンが繋がりません。Android アプリケーションは、他の電話を介して NDEF メッセージをプッシュできるため、正常に動作しますが、PC との接続に関しては動作しません。電話をリーダーに触れると、リーダーの LED の色が赤から緑とオレンジの点滅に変わりますが、他には何も起こりません。
ismb-npp-java アプリケーションからのログ出力があります。
ファクトリを取得
端末を入手する
端末名:ACS ACR122 0
T=1
rightProcedureTarget と呼ばれます。
[debug] {送信[50バイト]} 0xff 0x00 0x00 0x00 0x2d 0xd4 0x8c 0x01 0x00 0x00 0x00 0x00> 0x00 0x40 0x01 0xfe 0x0f 0xbb 0xba 0xa6 0xc9 0xC9 0x89 0x00 0x00 0x06 0x46 0x66 0x6D 0x01 0x01 >0x10 0x00
it.ismb.npp.IsmbNppException: データ送信の問題
[デバッグ] {送信 [7 バイト]} 0xFF 0x00 0x00 0x00 0x02 0xD4 0x86
[DEBUG] {送信 [26 バイト]} 0xFF 0x00 0x00 0x00 0x15 0xD4 0x8E 0x05 0x20 0x06 0x0F 0x63 >0x6F 0x6D 0x2E 0x61 0x6E 0x64 0x72 0x6F 0x69 0x64 0x02
it.ismb.npp.IsmbNppConnection.transceive (IsmbNppConnection.java:281) で
it.ismb.npp.IsmbNppConnection.rightProcedureTarget(IsmbNppConnection.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: データ送信の問題
it.ismb.npp.IsmbNppConnection.transceive (IsmbNppConnection.java:281) で
it.ismb.npp.IsmbNppConnection.rightProcedureTarget(IsmbNppConnection.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 (不明なソース) で
it.ismb.npp.IsmbNppConnection.transceive (IsmbNppConnection.java:263) で
it.ismb.npp.IsmbNppConnection.rightProcedureTarget(IsmbNppConnection.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 で (不明なソース)
見つけたすべてのドライバー (最新のドライバーを含む) を使用しましたが、問題は解決しません。
デバイスに問題がある可能性はありますか?それとも、ここで何か不足していますか?