XamarinとAndroid開発の初心者です。私はNFCタグ、特にST M24LR64Eを持っています。 Google PlayのSTアプリを使用してデータのブロックを確認できます。私のXamarinアプリでは、TagLostExceptionを取得せずにタグにメッセージを送信できません。タグIDを問わず問合せできますが、データの単一ブロックを読み取ろうとすると例外が発生します。どんな方向にも感謝します。XamarinとST M24LRタグを使用したNFC-V「タグロスト」例外
byte[] response = new byte[] { 0x0A };
byte[] cmd = new byte[]
{
(byte) 0x26,
(byte) 0x01,
0x00
};
response = nfcv.Transceive(cmd);
byte[] single = new byte[]
{
(byte) 0x40, // FLAGS
(byte) 0x20, // READ_SINGLE_BLOCK
0, 0, 0, 0, 0, 0, 0, 0,
(byte) (0 & 0x0ff)
};
Array.Copy(id, 0, single, 2, 8);
response = nfcv.Transceive(single);
最初のTransceive()
はOKで、10バイト戻ってきます。データのブロックを読み込もうとするとすぐに、私はTagLostExceptionを取得します。
あなたは私の答えからREAD_SINGLE_BLOCKコマンドをコピーしたようです([here](http://stackoverflow.com/a/38783006/2425802参照))。残念ながら、その答えに使用されたフラグのバイトは間違っていました。アドレス指定されたバージョンを示すには、0x20(0x40ではなく)を使用する必要があります。 'id'は' tag.GetId() '(または' nfcv.GetTag()。GetId() ')から取得したタグUIDを含んでいると仮定します。 –
また、Androidはすでにお客様のINVENTORYリクエストを実行しているため、再発行する必要はありません。 'NfcV'オブジェクトからのインベントリ要求によって、Androidが取得したすべての情報を取得できます。 –
ありがとうございます@MichaelRoland - しかし、フラグを0x20に変更すると、まだタグが失われた例外が生成されています。 – AndySousa