我是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()
是好的,我看到10個字節回來。只要我嘗試讀取一塊數據,我就會得到TagLostException。
您似乎從我的答案中複製了READ_SINGLE_BLOCK命令(請參閱[這裏](http://stackoverflow.com/a/38783006/2425802))。不幸的是,該答案中使用的標誌字節是錯誤的。您應該使用0x20(而不是0x40)來指示尋址的版本。我假設'id'包含從'tag.GetId()'(或'nfcv.GetTag()。GetId()')獲得的標籤UID。 –
此外,Android已經爲您執行INVENTORY請求,因此無需重新發布該請求。您可以通過來自'NfcV'對象的庫存請求獲取Android獲取的所有信息。 –
謝謝@MichaelRoland - 但將標誌更改爲0x20仍然會產生標籤丟失異常。 – AndySousa