2015-11-19 27 views
1

我正在通過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()字節,它看起來像數組長度的一些位被清除。

+0

我目前有相同的「問題」。你找到了解決方案嗎? –

+0

@ cherry-wave nope;相反,我發現所有這些東西比我預期的還要糟糕,並且使用硬編碼常量不是最後一個問題。所以使用一個可以工作的常量,你將不得不編寫比這更糟糕的代碼。 (我不記得它是什麼,但它完全違反直覺,技術邏輯幾乎與人們可以從文檔中獲得的印象相矛盾。) – 18446744073709551615

+0

是啊哈哈我知道NFC非常有趣。我所做的就是將CardReader側的maxTransceiveLength讀出標籤,並將其作爲收發命令的參數。 –

回答