JSR 177对Blackberry的支持

时间:2009-11-10 12:50:43

标签: java blackberry mobile-phones sim-card apdu

我一直在尝试通过APDU交换与SIM应用程序进行交互。为了交换APDU,我不得不通过Connector.open()API创建一个APDUConnection,但是这个特殊的API会抛出一个IO异常,说明“这个平台上不支持JSR 177”,我不知道是否会发生这种情况,因为我测试了这个模拟器或Blackberry设备是否也不支持它。

我想知道,有没有人成功与Blackberry上的SIM应用程序进行交互?如果是的话,有什么办法呢?如果我可以实现JSR 177,是否可以为Blackberry SDK添加扩展?如何扩展SDK以包含此类扩展?我非常感谢你们的任何投入。提前谢谢。

1 个答案:

答案 0 :(得分:1)

JSR 177主要用于与Secure Elements和UICC进行通信。 JSR 177无法在BlackBerry模拟器上运行,因为它不支持模拟所需的硬件。如果您想添加NFC模拟,则需要编辑模拟器并按照here提供的说明进行操作。我还没有完成这些说明,因此我不知道是否可以模拟与SIM的JSR 177连接。根据链接中提供的说明,“BlackBerry Smartphone Simulator仅模拟不安全的被动通信。”

我建议您阅读BlackBerry NFC Primer并了解互动智能卡应用程序。

可以在BlackBerry设备上使用JSR 177但是为了这样做,您必须使用NCFR或RESE签名对您的应用程序进行签名才能访问API。此签名只能通过BlackBerry应用程序获得。您可能需要基于您在应用程序中使用的API的两个或一个签名,但是如果您想与SIM通信,我相信您只需要NFCR签名。

以下是如何创建JSR 177连接的简短(未经测试)示例:

//The BNF URI is explained within JSR 177, it will connect to the AID specified in the
//target. In this example the AID is the first thing that came to my head and should be an
//application install on the UICC.
    final String BNF_URI = "apdu:0;target=A0.00.00.00.01.02.03.04";

    ...

    //Cmd APDU defines the APDU to be sent to the application on the UICC
    byte[] cmdApdu = new byte[]{ 0x00, 0x4A, 0x00, 0x01, 0x00};
    ApduConnection conn = (ApduConnection)Connector.open();
    byte[] rApdu = conn.exchangeAPDU(cmdApdu);
    ...

在示例中,收到的R-APDU将是从智能卡环境中的应用程序发送的数据的字节数组。