我正在寻找一种方法,能够从手机向读卡器发送特定的指令。 我已经了解到由于安全原因,android不支持卡模拟,但是在Nexus S上,可以通过固件补丁实现在Android 2.3.4上的卡模拟。 我的主要问题是,我是否真的需要卡模拟来向读卡器发送定义的APDU并接收答复APDU,或者还有其他的可能性,例如滥用Android Beam? 如果我需要使用卡模拟,是否有任何新的见解? 我找到的最后帖子和少量帖子都是近一年前的... 作为额外信息,最后我将无法控制读卡器。 感谢回答和任何关于卡模拟的新见解。
你所尝试实现的目标有些直白。智能卡在NFC中使用的原因是因为NFC协议是以这样一种方式构建的,即不可能提前知道正确的响应。总会涉及到某些秘密,你不能仅凭猜测就得到它。否则,所有使用非接触式智能卡的系统(如建筑物门禁控制)都将存在重大安全漏洞。你不能仅仅窥视协议、保存交换并在某些软件中复制它们,对于大多数应用程序而言,这种方法都会失败。在某个阶段会有一些随机值和一些加密计算。为了用手机模拟卡片,你需要一个安全元素(手机上的智能卡芯片或手机中的SIM卡),并且你需要手机中的NFC芯片将卡模拟APDU路由到这个安全元素(这可能是你所提到的补丁正在做的事情)。在Android应用程序中进行卡模拟的方法是有的,但我怀疑这将需要大量的补丁,并且你将无法预测响应时间,因此你的读卡器可能无法接受。此外,当你的手机关闭时(例如电池耗尽),这也将阻止卡模拟的工作。
这在Android KitKat 4.4中是可能的。 看看这个链接,更多信息很快会被添加。 http://developer.android.com/guide/topics/connectivity/nfc/hce.html