我正在通過NFC執行雙向數據交換,一側爲nfcAdapter.enableReaderMode()
,另一側爲HostApduService
,請參閱Host-based Card Emulation example。來自HostApduService的getMaxTransceiveLength()
我想知道最大收發長度。我很容易就可以在讀者端做到這一點,
public void onTagDiscovered(Tag tag) {
IsoDep isoDep = IsoDep.get(tag);
int maxLen = isoDep.getMaxTransceiveLength()); // 65279 on Samsung GS5
...
}
但我怎麼能在HostApduService
方做到這一點?
編輯:即使在一個方向上它不能傳輸和/或接收getMaxTransceiveLength()字節,它看起來像數組長度的一些位被清除。
我目前有相同的「問題」。你找到了解決方案嗎? –
@ cherry-wave nope;相反,我發現所有這些東西比我預期的還要糟糕,並且使用硬編碼常量不是最後一個問題。所以使用一個可以工作的常量,你將不得不編寫比這更糟糕的代碼。 (我不記得它是什麼,但它完全違反直覺,技術邏輯幾乎與人們可以從文檔中獲得的印象相矛盾。) – 18446744073709551615
是啊哈哈我知道NFC非常有趣。我所做的就是將CardReader側的maxTransceiveLength讀出標籤,並將其作爲收發命令的參數。 –