1

スマートカード USB リーダー ( ACR38 および ACR38 CCID ) があります。winscard.dll ((SCardEstablishContext、SCardConnect、SCardControl メソッド) と完全に接続し、apdu コマンドを送信するために機能する C# コードがいくつかあります。

これを Java で行う必要があり、次のようなコードで javax.smartcardio API を使用します: Java の PCSC サンプル

リーダーと挿入されたカードは正常に検出されますが、接続しようとすると遅延 (15 ~ 20 秒) があります。この遅延は、カードが最初に挿入されたときにのみ表示されます。同じカードを抜き差ししても遅延はありません。カードを取り出して別のカードを挿入すると、再び遅延します。Javaプログラムが実行されているかどうかに関係なく、最初の15〜20秒間接続できません。

リーダー/カードが接続されている場合、apdu コマンドを完全に送信できます。

それ以外の場合、C# と winscard.dll API では遅延はありません。

私はwin7、win8、ACR38リーダー、ACR38 CCIDリーダーでテストしています...

なぜ私はこの遅延を持っているのですか?

4

1 に答える 1

0

説明したようにカードが初めて挿入されたときにのみこれが発生する場合は、他のプロセスがリーダーに対して排他的な接続を開いている可能性があります。これは、Windows 組み込みの証明書伝達サービスまたは、インストールしたカード ミドルウェアの一部である同様のアプリケーションである可能性があります。また、カードのミニドライバーをダウンロードしようとする Windows 更新プログラムである可能性もあります。

于 2014-03-12T11:25:48.933 に答える