1

手順に従って、Android フォン (Samsung Galaxy Nexus) を使用して Mifare Ultralight C タグを認証しようとしています。ステップ間に遅延がなければ、認証は正常に機能します。ただし、応答メッセージの前に 200 ミリ秒待機するなどの遅延がある場合は、IOException がスローされます。

Android API で提供されている setTimeout メソッドを試してみましたが、違いはないようです。

Macbook に接続された別のリーダーを使用して認証できるため、タグの問題ではないと思いますが、多少の遅延はあります。(実際、コードをステップスルーできましたが、タグは文句を言いませんでした)。

これは Android API の制限ですか? 回避策はありますか?この場合、setTimeout メソッドを使用することになっていますか? メソッドの使い方が間違っているのではないかと思います。

前もって感謝します。

4

1 に答える 1

2

タグと通信していないときはいつでも、Androidはタグの存在を継続的にチェックします。それがどのように行われるかは、タグのテクノロジー(NfcA / B / F / VまたはIsoDep)によって異なりますが、MIFARE Ultralightの場合は、タグを再選択することで実行されます。これにより基本的にリセットされるため、認証コンテキストが失われ、タグは認証を続行できなくなります。

この動作は、一般的なデスクトップリーダーの動作とはまったく異なります。したがって、このような場合はこれに注意する必要があります。最善の方法は、タグと継続的に通信することにより、自動プレゼンスチェックが開始されないようにすることです。(プレゼンスチェックは、デバッガーでコードをシングルステップ実行したときにも開始されます、ところで。)

于 2012-10-09T18:18:11.863 に答える