来自HostApduService的getMaxTransceiveLength()

时间:2015-11-19 10:43:13

标签: android nfc hce

我正在通过NFC进行双向数据交换,一边是nfcAdapter.enableReaderMode()而另一边是HostApduService,请参阅Host-based Card Emulation example

我想知道最大收发长度。我很容易在读者方面做到这一点,

    public void onTagDiscovered(Tag tag) {
        IsoDep isoDep = IsoDep.get(tag);
        int maxLen = isoDep.getMaxTransceiveLength()); // 65279 on Samsung GS5
        ...
    }

但我怎么能在HostApduService方面做到这一点?

编辑:即使在一个方向上也不能发送和/或接收getMaxTransceiveLength()字节,看起来数组长度的某些位被清除。

1 个答案:

答案 0 :(得分:0)

不幸的是,HCE方面目前不等同于getMaxTransceiveLength()。但是,您可以尝试通过反复尝试收发不同长度来估计最大可能长度。

通常,您可以预期HCE模式下的Android设备至少能够收发大约250个字节。请参阅Android 4.4 hce (host-based card emulation) "processCommandApdu" apdu lengthhttp://code.google.com/p/android/issues/detail?id=69233