我正在通过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()字节,看起来数组长度的某些位被清除。
答案 0 :(得分:0)
不幸的是,HCE方面目前不等同于getMaxTransceiveLength()
。但是,您可以尝试通过反复尝试收发不同长度来估计最大可能长度。
通常,您可以预期HCE模式下的Android设备至少能够收发大约250个字节。请参阅Android 4.4 hce (host-based card emulation) "processCommandApdu" apdu length和http://code.google.com/p/android/issues/detail?id=69233