我们正在构建一个使用Android读取NFC标签的原型应用程序。但是,我们没有使用嵌入式NFC阅读器和Android SDK,因为我们使用的是名为ACR1255U-J1的外部蓝牙阅读器
我们使用的NFC芯片是带有v0.4命令集的Mifare Desfire EV1 8k。我认为这些被称为包装APDU命令,因为我不认为EV1 v0.4支持完整的ISO APDU命令集。
由于我们使用外置蓝牙读卡器(这是业务需求),我们不相信我们能够使用Android NFC SDK,而是需要使用蓝牙读卡器制造商提供的SDK
无论如何,目前要阅读8k的有效载荷,它需要花费超过25秒。我们怀疑,虽然还没有正式验证,但部分原因在于我们通过以下方式阅读数据:
每个帧大小最多为59个字节,因此我们理解即使我们要求在一个读取命令中读取更大的有效载荷(如100k或整个8k),我们仍然只能在一个响应中获得59个字节的数据帧。
这导致我们执行131个单独的读取命令,然后每个命令都会阻塞并等待数据,然后将每个59字节的段拼接在一起以获取有效负载。
由于命令是从Android应用程序,然后到蓝牙读卡器,然后到NFC卡,然后从卡和通过蓝牙读卡器返回到应用程序的字节131次,我们想知道这是否是大部分花时间。
我们正在努力寻找更好的方法来分析/调试问题。显然,由于使用Android NFC API的板载NFC阅读器能够在几秒钟内读取数据,因此可以更快地阅读。
有没有人对我们的问题是什么或如何加快这个问题有任何建议。