我搜索了有关 NFC SIM 卡的信息,并在这里和那里找到了关于它们的解释:
对于那些想要使用近场通信技术但目前没有兼容 NFC 的智能手机的人来说,还有其他方法可以在您的手机上启用 NFC,而无需将其换成昂贵的新型号。SIM 卡和 SD 卡都可以配备 NFC 芯片,一些公司目前提供或准备提供这些选项,以便更多客户可以开始使用 NFC 技术。
我现在的问题是:
- NFC SIM 卡是否也有内部天线,或者手机必须为 NFC SIM 本身提供 NFC 天线?
- 如果 NFC SIM 没有内置天线,而手机需要为 SIM 提供天线,(这意味着手机必须兼容 NFC,对吗?)为什么我们需要 NFC SIM?我们不能简单地使用手机的 NFC 芯片代替 SIM 的 NFC 芯片吗?
- 或者说,外面有没有NFC天线,但没有NFC芯片的手机?或者有什么方法可以在旧手机上添加天线以便在其中使用 NFC SIM?
无论如何,假设我想在我的 SIM 卡上安装以下小程序(它的源代码):
import sim.toolkit.ToolkitInterface;
import sim.toolkit.ToolkitRegistry;
...
import javacard.framework.ISOException;
public class STKTest extends Applet implements ToolkitInterface {
public static void install(byte[] bArray, short bOffset, byte bLength) {
// GP-compliant JavaCard applet registration
new STKTest().register(bArray, (short) (bOffset + 1), bArray[bOffset]);
}
//this method handles standard APDU commands
public void process(APDU apdu) {
// Good practice: Return 9000 on SELECT
if (selectingApplet()) {
return;
}
apdu.setIncomingAndReceive();
final byte[] buf = apdu.getBuffer();
switch (buf[ISO7816.OFFSET_INS]) {
case (byte) 0x00:
//do something
break;
}
}
//this method handles the SIM Toolkit commands
public void processToolkit(byte event) throws ToolkitException {
switch (event) {
case ToolkitConstants.EVENT_TIMER_EXPIRATION:
//do something
break;
}
}
}
问题是:我可以使用 GlobalPlatform 命令来安装我的小程序(就像普通智能卡一样)还是基于DefCon 中的这个演示,我必须使用 Envelope 命令、SMS 数据包和 OTA 技术来安装它?
最后一个问题是关于本文的内容(SIM卡应用开发简介)。在某些页面(例如第 16 和 17 页)中,提到该人说现在有一些兼容GlobalPlatform 3的SIM 卡可用。但据我所知,GlobalPlatform Specification for Smart Cards 的最新版本是GlobalPlatform 2.3(在本文发表时尚未发布)。那么作者在文章中提到的GlobalPlatform 3规范是什么?