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

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

4 голосов
/ 10 ноября 2009

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

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

1 Ответ

1 голос
/ 11 февраля 2012

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

Я советую вам прочитать 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 будет байтовым массивом данных, отправленных из приложения в среде смарт-карты.

...