5

Mifare Ultralight C (ISO/IEC 14443-2 および 14443-3 タイプ A 互換) タグを認証しようとしています。

Android で提供されている MifareUltralight.transceive() 関数で認証コマンドを送信します。NfcA.transceive() も確認しました (このオブジェクトは ISO/IEC 14443-4 タグを処理するためのものであり、IsoDep.transceive() を使用しないのはこのため、IsoDep はこの種のタグと互換性がないようです)。

したがって、最初に認証要求コマンドを送信すると、タグは AFxxxx..... で transceive() に応答します。ここで、タグの応答を処理し、その応答への応答で別の transceive() を送信しますが、... 直前にtransceive() を送信すると、タグが接続されます。送信すると、「タグが失われました」という警告と「送受信に失敗しました」というメッセージが表示されます。

また、NfcA で試してみると、同じ問題が発生します。

最後に、最初の 1 つの応答の後に 1 つの認証コマンドを送信しようとすると、「タグが失われました」という警告が表示され、送受信が失敗します。

だから私の質問は:

2 番目の transceive() を送信すると NFC タグが失われるのはなぜですか? <<

(2番目のtransceive()を送信する直前にタグで接続が開かれているため、タイムアウトの問題ではないようです)UIのものとは別のスレッドですべてのものを作成しました。

前もって感謝します!

4

2 に答える 2

3

あなたのアプローチは正しいようです。ただし、タグの動作は、タグの回答に対するあなたの応答が間違っていたことを示しています。その場合、タグは応答を拒否します。電話の観点からは、これはタグが消えたことと区別できないため、TagLostException.

于 2012-03-13T08:56:47.227 に答える