2012-03-12 12 views
5

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

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

したがって、最初に認証要求コマンドを送信すると、タグはAFxxxxというタグでトランシーバ()に応答します。ここでタグの応答を処理し、次にその応答に対する応答とともに別の送受信を送信します。 ..タグが接続されたときに、トランシーバー()が送信される直前に、私は "タグが失われました"という警告と "送受信失敗"を受け取ります。

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

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

だから私の質問は:私は2番目送受信を(送信するとき

はなぜNFCタグが迷子にん)? < <

(接続がタグと開いているだけで二送受信を送信する前に()ので、タイムアウトの問題ではないようです) 私は、異なるスレッドですべてのものを作りましたUI 1。

ありがとうございます!

+0

私の推測では、レスポンス(2回目の送信)は正しく認証されず、タグは決して応答しないので、タグが失われたように電話機を探します。何度も書き込み(4バイトの書き込み)を試み、それが機能するかどうかを確認してください。 transcieve(0xA2、0x06、0x01、0x02、0x03、0x04)0x06はページ番号です。それがうまくいくなら、認証の試みは間違ったものになります。 –

+0

まずはお返事ありがとうございます:)。それを読んだ後、あなたは正しいかもしれないと思います。問題は、認証への返信が間違っている可能性があります。しかし、良い見通しであるようです。 もう一度おねがいします! ;) 私はそれを実装するとすぐに何度も書いても大丈夫でしたが、ここに投稿します。 – Miguel

+0

はい、いくつかの文章を作った後、それは私の認証要求に問題があるようです。 お手数をおかけしていただきありがとうございます。問題の原因を特定するために、リクエスト手続きを確認します。 ご協力いただきありがとうございます。 :) – Miguel

答えて

3

あなたのアプローチは正しいと思われます。ただし、タグの動作は、タグの応答に対する応答が正しくないことを示しています。その場合、タグは応答を拒否します。携帯電話の観点から見ると、これはタグが消えたことと区別できないので、TagLostExceptionとなります。

+0

はい、あなたが正しいかもしれませんが、私はベンが提案した連続した著作を作ろうとします、私は私の誤りの真実を得るでしょう。あなたの返信NFCの男に感謝! – Miguel

+0

あなたは理由がある、私は間違っていることを見つけるために私の認証手順をチェックします! ありがとうございました:) – Miguel

+0

私の認証アルゴリズムを確認していましたが、間違っている可能性のある1つの前提が見つかりました。私はデフォルトの認証キーとしてすべて "0h"を使用します。それが問題だろうか? - 前もって感謝します! – Miguel