5

私は Sim Application Toolkit アプレットを開発しようとしています.多くの簡単な例がインターネットで見つかりましたが、成功していません..

問題は; 私のメニュー エントリは STK メニューにありますが、それを選択しても何も起こりません. イベント EVENT_MENU_SELECTION にテキストを表示しようとしています。(実際には、テキストを表示するだけでなく、SMS、USSD、サブアイテムも機能しません..)

  • 認証キーを使用していくつかのアプレットを開発およびテストするために、製造元から実際の SIM カードを入手しています。
  • Android 2.3 NFC スマートフォンでテストします。
  • アプレットを SIM にロードするには、ACR1281U をリーダーとして使用し、Giesecke & Devrient JLoad 2.3.0 をローダーとして使用します。
  • Sim Toolkit では、デフォルトでメニュー エントリがあり、正常に動作します。

これが私のサンプルコードです..誰かがアイデアを持っていることを願っています..(アプレットをロードする際の特定のインストールパラメータでしょうか?)

前もってありがとう、クチカ

package proactive_cmd;

import javacard.framework.*;
import sim.access.*;
import sim.toolkit.*;

public class display_text extends Applet 
  implements ToolkitConstants, ToolkitInterface
{
  private static final byte CMD_QUALIFIER = (byte)0x80;

  private byte[] menuEntry = {'M','y','M','e','n','u'};
  private byte[] textBuf = {'H','e','l','l','o'};

  private ToolkitRegistry reg;
  private SIMView gsmFile;

  public display_text() {
    //Get the GSM application reference
    gsmFile = SIMSystem.getTheSIMView();

    reg = ToolkitRegistry.getEntry();

    reg.initMenuEntry(menuEntry,
                      (short) 0, 
                      (short) menuEntry.length,
                      PRO_CMD_DISPLAY_TEXT,
                      false,
                      (byte) 0,
                      (short) 0);
  }

  public static void install(byte[] bArray, short bOffset, byte bLength)
    throws ISOException
  {

    display_text dt = new display_text();
    dt.register();
  }

  public void processToolkit(byte event)
    throws ToolkitException
  {
    ProactiveHandler ph = ProactiveHandler.getTheHandler();

    if (event == EVENT_MENU_SELECTION) {


       ph.init((byte) PRO_CMD_DISPLAY_TEXT, (byte) CMD_QUALIFIER, DEV_ID_DISPLAY);
       ph.appendTLV((byte)(TAG_TEXT_STRING | TAG_SET_CR),
                    textBuf,
                    (short) 0, 
                    (short) textBuf.length);
      ph.send();
    }
  }


  public void process(APDU apdu) {
    if (selectingApplet()) {
      return;
    }
  }

}
4

1 に答える 1

1

STKコマンドを使用するには、アプレットを正しくインストールする必要があります。SIM Toolkitの場合、INSTALLMAKESELECTABLEコマンドのCAタグである必要があります。UICCツールキットを使用する場合は、EAタグを使用する必要があります。詳細については、ETSI102226規格を参照してください。

于 2012-10-08T21:19:39.293 に答える