2012-10-06 20 views
5

staram się rozwijać SIM Application Toolkit aplet .. Wiele proste przykłady znalezione w internecie, ale bez powodzenia ..Sim Application Toolkit - cant tekst na wyświetlaczu (właściwie nic) w sprawie wyboru

Problemem jest; Moja pozycja menu pojawia się w menu STK, ale jeśli ją wybiorę, nic się nie dzieje .. Próbuję wyświetlić tekst zdarzenia EVENT_MENU_SELECTION. (W rzeczywistości nie tylko wyświetlanie tekstu, także SMS, USSD, podrzędne pozycje nie działa zbyt ..)

  • mam prawdziwy kart SIM od producenta do opracowania i testowania niektórych apletów z kluczami auth.
  • Testuję to na smartfonie z Androidem 2.3 NFC.
  • Aby załadować aplet do karty SIM, używam ACR1281U jako czytnika, a Giesecke & Devrient JLoad 2.3.0 jako program ładujący.
  • W zestawie Sim Toolkit jest domyślnie pozycja menu, działa poprawnie.

Oto mój przykładowy kod .. Nadzieja ktoś ma pomysł .. (Może jakiś specyficzny zainstalować parametr przy załadunku aplet?)

Dzięki z góry, Kutschka

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; 
    } 
    } 

} 
+0

Skąd wziął się zestaw do programowania STK? Czy jest otwarty jak jcdk, który można znaleźć na stronie Oracle? – jlanza

Odpowiedz

1

w celu aby używać poleceń STK, musisz poprawnie zainstalować aplet. W przypadku pakietu SIM Toolkit musi to być znacznik CA w poleceniu INSTALL MAKE SELECTABLE. Jeśli użyjesz zestawu narzędzi UICC, musisz użyć tagu EA. Szczegółowe informacje można znaleźć pod numerem telefonu ETSI 102 226 standard.

+0

Witam, dziękuję, ok, po dokonaniu wyboru, działa .. Mogę wyświetlić tekst .. Używam sim.toolkit i przeczytałem specyfikację globalnej platformy. Parametry do wybrania/instalacji, itd. Są w porządku, ale nie mogłem zrozumieć tokenów instalacji (ostatniej części parametru instalacji). Czy możesz mnie polecić? I moje drugie pytanie, używam sim.toolkit, w jaki sposób mogę skorzystać z pakietu narzędziowego uicc, skąd mogę go pobrać? Dziękuję. – Kutschka