我正在嘗試閱讀恩智浦在我的Android應用程序中開發的NFC標籤。可以使用Android讀取標籤:App by NXP和one other可以正確讀取。使用Android閱讀恩智浦ICODE SLI-L標籤
準確的標籤類型是「ICODE SLI-L(SL2ICS50)」,而RF技術是「Type V/ISO 15693」(從這些工作應用程序獲取的數據)。內存由2個頁面組成,每個頁面有4個塊,每個塊有4個字節 - 我只想將整個數據存儲在內存中。
標籤必須使用Android的NfcV
類處理,標籤的數據表是available here,但使用NfcV
很難找到任何工作代碼示例。我嘗試了幾個我自己通過數據表總結出來的東西,並嘗試了來自this PDF I found with Google的通信示例,但沒有任何效果。
在我的活動相應的方法(我使用NFC前景調度)看起來是這樣的:
public void onNewIntent(Intent intent) {
android.nfc.Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
NfcV tech = NfcV.get(tag);
try {
tech.connect();
byte[] arrByt = new byte[9];
arrByt[0] = 0x02;
arrByt[1] = (byte) 0xB0;
arrByt[2] = 0x08;
arrByt[3] = 0x00;
arrByt[4] = 0x01;
arrByt[5] = 0x04;
arrByt[6] = 0x00;
arrByt[7] = 0x02;
arrByt[8] = 0x00;
byte[] data = tech.transceive(arrByt);
// Print data
tech.close();
} catch (IOException e) {
// Exception handling
}
}
,當我把我的手機上的標籤的方法是正確調用,但NfcV
對象的transceive()
方法總是拋出一個IOException:android.nfc.TagLostException: Tag was lost.
。這是我嘗試過的所有字節數組的結果(上面的那個不太可能是正確的,但是在最後幾天我嘗試了其他所有字節數組,其結果都是相同的行爲)。發生錯誤是因爲我發送了錯誤的命令給標籤 - 但我不能拿出正確的命令。任何想法?
我甚至發郵件給恩智浦, ey將我鏈接到我已有的數據表,並建議我在此處詢問StackOverflow ;-) –