MIDlet

Tecnología para mobiles |20 de agosto de 2011

Midlet es un programa en lenguaje de programación Java para dispositivos embedidos (se dedican a una sola actividad), más específicamente para la máquina virtual Java MicroEdition (Java ME). Generalmente son juegos y aplicaciones que corren en un teléfono móvil. Está desarrollada bajo la especificación MIDP (perfil para información de dispositivo móvil).

Requisitos

Requiere un dispositivo que implemente JavaME y MIDP para correr. Como otros programas desarrollados en Java, tienen la característica, "Escribir una vez, ejecutar en cualquier parte" ("Write once, run anywhere"). Para escribir se puede obtener Sun Java Wireless Toolkit o NetBeans con la extensión Mobility Pack. Para las distribución son necesarios dos archivos, archivo .jar conteniendo el bytecode del programa y un archivo .jad que describe los contenidos del archivo .jar.
Un MIDlet tiene que cumplir los siguientes requisitos para poder correr en un teléfono móvil:

  • La clase principal necesita ser una subclase de javax.microedition.midlet.MIDlet.
  • El MIDlet necesita ser empacado dentro de un archivo .jar.
  • El archivo .jar necesita ser preverificado usando un preverificador.
  • En algunos casos, el archivo .jar necesita ser firmado digitalmente por un proveedor de teléfonos móviles.

Al crear una aplicación midlet se genera un archivo descriptor con extensión .jad, que contiene todos los recursos que se están utilizando para que la aplicación se ejecute.

 

ejemplo: Aplicacion utilizando ChoiceGroup

Utilizando Netbeans IDE 7.0.1 seleccionamos NEW PROJECT la opción Java ME (mobile Edition) y la opción Mobile Application



Colocamos por nombre del proyecto: Midlet_ejemplo, dejamos habilitada la casilla de “set as Main Project” y deshabilitamos la segunda “créate hello MIDlet”  luego damos clic en next.


En la siguiente pantalla tenemos que tener mucho cuidado en el dispositivo que asignaremos, pues tiene que acoplarse a la configuración y perfil correspondiente al dispositivo real, donde montaremos la aplicación real.  Para nuestro ejemplo he seleccionado: DefaultFxTouchPhone1 y la configuración que se ve en la imagen

Ahora en nuestro panel del proyecto, damos clic derecho sobre la carpeta Source Packages y seleccionamos la opción New à visual MIDlet.  Nos aparecerá una nueva ventana para que asignemos el nombre que queramos darle a la vista, para este caso, dejaremos el nombre por default.
En la pantalla de “Flow” que aparecerá arrastraremos un Form desde la paleta de la derecha al área de trabajo.  Luego de haber creado el primer form, daremos clic derecho sobre la barra de titulo y seleccionaremos New/Add y la opción OkCommand, luego agregaremos un ExitCommand.  Realizamos la misma operación para 3 formularios mas.

Ahora haremos las relaciones entre formularios.  De la línea OkCommand del primer form, arrastraremos al primer form1 y así sucesivamente, cabe aclarar que del formulario principal tenemos que iniciar de STARTED hacia form.  Ahora con las líneas exitCommand de cada form, arrastramos hasta RESUMED del form principal.  Tiene que quedar como se ve en la imagen
 
Procedemos a llenar cada formulario.  Damos clic sobre el primero (form).   Accederemos a la pantalla SCREEN aquí tendremos una visualización de cómo aparecerá en la primer pantalla de la aplicación, (despues de haber pasado por la principal)  Damos clic derecho sobre el título y le damos agregar à choice element.  Luego vamos a propiedades (panel derecho) y seleccionamos tipo de choiceGroup sea EXCLUSIVE, donde únicamente nos permitirá seleccionar una respuesta y no múltiples.  Nos quedará de la siguiente manera:

Ahora… ya que tenemos el primero elemento de la lista, damos clic derecho sobre choiceGroup y elegimos la opción choice element add,  escribimos la pregunta con 3 posibles respuestas:

Hacemos lo mismo para los demás formularios:




Para el formulario de resultados, agregamos un StringItem sin texto:

Estamos listos para darle la acción a los comandos de cada form, damos clic derecho sobre el comando OKCOMMAND y seleccionamos la opción GO SOURCE

El cursor nos aparecerá abajo de:
else if (command == okCommand) {
// write pre-action user code here = escribimos la acción en codigo aqui:
indice = choiceGroup.getSelectedIndex();
if (indice == 2) //opción 3 es la respuesta correcta
total++;
Antes debimos de declarar las variables, después de las abrir llaves en public class:
int índice;
int total;

y procedemos a realizar el mismo procedimiento para los comandos ok  de los demás forms, teniendo en cuenta el orden de la respuesta correcta.

Para el form de resultados debemos colocar mensajes por la acumulación de respuestas correctas:

if (total == 1)
stringItem.setText("Tiene que estudiar mas");
else if (total == 2)
stringItem.setText("Solamente obtuvo 2 respuestas buenas");
else if (total == 3)
stringItem.setText("Casi lograbas responderlas todas bien.  Hay que estudiar un poco mas");
else if (total == 4)
stringItem.setText("FELICITACIONES! acertastes las 4 preguntas");

al darle ejecutar… nos desplegará  emulado el modelo del dispositivo escogido y de una vez nos lanzará la primer pregunta

Utilizando los botones del teléfono seleccionamos la tercera.
Luego presionamos el botón ok y seguimos a la pregunta 2:

La respuesta incorrecta es Oxelon (la segunda) la seleccionamos, y damos ok, pasando a la tercera

Luego de elegir la respuesta  correcta en la última pregunta, la aplicación nos devolverá el total de respuestas correctas: