Trato de desarrollar un kit de herramientas de aplicación SIM applet .. Muchos ejemplos simples que se encuentran en Internet, pero sin éxito ..de aplicaciones SIM Toolkit - texto de la pantalla no puede (en realidad nada) en la selección
El problema es; Mi entrada de menú viene en el menú STK, pero si la selecciono, no pasa nada .. Intento mostrar el texto en el evento EVENT_MENU_SELECTION. (En realidad, no sólo la visualización de texto, también SMS, USSD, sub elementos no funciona demasiado ..)
- tengo tarjetas sim reales del fabricante para desarrollar y probar algunos applets con las claves de autenticación.
- Lo pruebo en un teléfono inteligente con Android 2.3 NFC.
- Para cargar el applet en SIM, utilizo ACR1281U como lector y Giesecke & Devrient JLoad 2.3.0 como cargador.
- En el Sim Toolkit es una entrada de menú predeterminada, funciona bien.
Aquí está mi código de ejemplo .. La esperanza alguien tiene una idea .. (Quizás algunos de instalación específicas de parámetros de applet de carga?)
Gracias de antemano, 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;
}
}
}
¿De dónde sacaste el kit de desarrollo STK? ¿Está abierto como el jcdk que puedes encontrar en la página de Oracle? – jlanza