簡體   English   中英

在Android中同時讀取多個NFC標簽

[英]Reading multiple NFC tags simultaneously in Android

新的2.3.3 SDK包括改進的NFC支持,我想編寫一個依賴於此的應用程序。 最后,我希望能夠從同時進入該字段的多個標簽中讀取數據,但Android似乎僅在第一個進入該字段的標簽上觸發 - 后續的被忽略。

從閱讀NFC規范(ISO / IEC 14443-3)我正在使用的標簽(Mifare Classic),我應該能夠向標簽發送'halt'命令,這將導致它停止響應,並允許我要閱讀該字段中的下一個標記。 Android不直接在任何TagTechnology子類上支持halt命令,所以我嘗試使用transceive(new byte[] {0x50, 0x00})直接發送它。 這會拋出IOException ,並顯示消息“收發失敗”。

不可否認,我正在從主線程中完成所有這些,我理解這是一個壞主意,但我只想盡可能輕松地測試這個概念。

是否可以同時與現場的多個標簽進行通信? 我究竟做錯了什么?

不幸的是,你想要的是不可能的,除非你做一些非常先進的hackery,這幾乎不是一個好主意:)

如果你在transceive()發送正確的字節,你可能會暫停卡,正如你現在要做的那樣。 但是,由於停止(或者更確切地說,您嘗試發送的HLTA)是ISO14443-3A命令,這將無法通過MifareClassic接口 - 它使用“加密”管道。 不幸的是,通過NfcA接口直接傳輸也不適用於當前的堆棧。

即使您可以讓卡停止,這也不會自動導致手機中的NFC芯片恢復輪詢新標簽 - 因為您正在“繞過”堆棧。

根據我的短暫經驗,您無法使用多個標簽。 如果字段中有兩個標記,則表示您沒有從標記中收到ID,它是二進制零。 所以我的猜測是,在這一點上,你只能訪問一個標簽,並且在該字段中只能有一個標簽。

您是否成功使用收發器發送其他命令,如讀取塊(0x30,0x(塊))或驗證扇區命令? 只是想你可能想要確保你首先正確使用收發器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM