Поддержка JSR 177 на Blackberry

Я пытался взаимодействовать с приложением SIM через обмены APDU. Для обмена APDU мне пришлось создать APDUConnection через API Connector.open(), но этот конкретный API вызывает исключение ввода-вывода, в котором говорится, что «JSR 177 не поддерживается на этой платформе», я не знаю, происходит ли это, потому что я тестирую это на симулятор или он также не поддерживается на устройствах Blackberry.

Я хотел бы знать, удавалось ли кому-нибудь взаимодействовать с SIM-приложениями на Blackberry? Если да, то как это сделать? Можно ли добавить расширения в Blackberry SDK на случай, если я смогу реализовать JSR 177? Как расширить SDK, включив в него такие расширения? Я очень ценю любой вклад от вас, ребята. Заранее спасибо.


person Siva    schedule 10.11.2009    source источник


Ответы (1)


JSR 177 чаще всего используется для связи с Secure Elements и UICC. JSR 177 не будет работать на симуляторе BlackBerry, поскольку он не поддерживает моделирование необходимого оборудования. Если вы хотите добавить имитацию NFC, вам нужно будет отредактировать симулятор и следовать приведенным инструкциям здесь. Я не выполнил эти инструкции, поэтому не знаю, можно ли имитировать подключение JSR 177 к SIM-карте. Из инструкций, приведенных по ссылке, говорится: «Симулятор смартфона BlackBerry имитирует только небезопасную пассивную связь».

Советую прочитать BlackBerry NFC Primer и иметь некоторые знания о взаимодействующих приложениях для смарт-карт.

Можно использовать JSR 177 на устройстве BlackBerry, однако для этого вы должны подписать свое приложение подписями 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 будет массивом байтов данных, отправленных из приложения в среде смарт-карты.

person binarycreations    schedule 11.02.2012