2 - Crear el proyecto en netbeans, Menu File -> New Proyect
En el cuadro de diálogo seleccionar Categoría: JavaME, Proyecto: Mobile Application; click en Next.
3-Dar un nombre al proyecto, yo seleccioné BlasSMS
4 - En la siguiente pantalla es necesario seleccionar la plataforma para la que se compilará el proyecto, para esta ocasion CLDC-1.0 y MIDP-2.0, se seleccionan las configuraciones mas básicas posibles para mantener la compatibilidad con la mayor cantidad de dispositivos posibles.
Luego hacemos click en Finish
5 - Seleccionamos el archivo HelloMIDlet.java, apretamos F2 y cambiamos su nombre a BlasSMS.java y le damos enter, en la pantalla que aparece seleccionamos la casilla "Apply Rename on Comments" (Aplicar renombrar a los comentarios) y hacemos click en Refactor.
6 - Abrir el fuente BlasSMS.java y hacer click en boton Screen y seleccionar "form" en el combo de la derecha.
7 - En la paleta de objetos seleccionamos TextField y agregamos 2 campos al form que estamos editando, seleccionamos el primero de los textfields, hacemos click derecho y seleccionamos Rename, cambiamos el nombre de la instancia a "txtCodigo".
Hacemos lo mismo con el segundo textfield y lo nombramos "txtMensaje".
Al hacer click derecho sobre los objetos podemos acceder también a las propiedades, y cambiar los labels a "Codigo" y "Mensaje"
Ahora seleccionamos en la paleta un "Exit Command" y lo agregamos a la pantalla, luego un "Ok Command", también lo agregamos, cambiamos las propiedades para que se llamen "cmdSalir" y "cmdEnviar" de manera análoga a las propiedades de los campos de texto.
El proyecto debería verse así:
8 - En la solapa "Flow", se hace un click en el boton cmdSalir y se arrastra hacia el cuadro titulado "Mobile Device"
Con lo que se vería así:
9 - Al código!
Seleccionamos la solapa source, debajo de la declaracion de la clase agregamos la declaracion de dos variables, una para el mensaje y otra para mantener el numero telefónico al cual enviar
public class BlasSMS extends MIDlet implements CommandListener {
private String mensaje = "";
private String telNro = "+595985265999";
en el método commandAcction agregamos una llamada al metodo enviarSMS() que efectuará el envio del mensajeprivate String telNro = "+595985265999";
public void commandAction (Command command, Displayable displayable) {
if (displayable == form) {
if (command == cmdEnviar) {
// write pre-action user code here
this.enviarSMS(this.telNro); //----> ATENCION ESTE ES EL CODIGO AGREGADO!!!
// write post-action user code here
} else if (command == cmdSalir) {
Al final del archivo se escriben métodos para enviar y validar el mensaje, uno para dar un formato "util" al texto enviado y otro para mostrar una ventana de alerta que nos ayudará a mostrar diferentes mensajes en pantalla.Validación del mensaje:
public boolean validarMensaje(){
if (this.txtCodigo.getString().length()<1){
this.mensaje = "Falta Codigo: Verifique";
return false;
return false;
}
if (this.txtMensaje.getString().length()<1){
this.mensaje = "Falta Mensaje: Verifique";
return false;
}
return true;
}
Método para "comprimir" el mensaje con los datos introducidos antes de enviarlo:
public String compactarMensaje(){
String resultado = "" ;
resultado = "'" + this.txtCodigo.getString().trim().toUpperCase() + "',";
resultado += "'" + this.txtMensaje.getString().trim().toUpperCase() + "',";
return resultado;
Método para envío del mensaje:
public boolean enviarSMS(String telNro){
try {
if (!validarMensaje()){
mostrarAlerta(this.mensaje);
return false;
}
String recipientAddress = "sms://" + telNro;
MessageConnection connection = (MessageConnection) Connector.open(recipientAddress);
TextMessage tmsg = (TextMessage) connection.newMessage(MessageConnection.TEXT_MESSAGE);
tmsg.setPayloadText(this.compactarMensaje());
tmsg.setAddress(recipientAddress);
connection.send(tmsg);
connection.close();
} catch (IOException ex) {
this.mostrarAlerta("Error:" + ex.getMessage());
return false;
}
this.mostrarAlerta("Envio OK");
return true;
}Método para mostrar alertas:
public void mostrarAlerta(String msg){
Alert frmAlert = new Alert(msg);
frmAlert.setTimeout (Alert.FOREVER);
switchDisplayable (frmAlert, getForm());
}Bibliografía:
Proyecto tagua http://sourceforge.net/projects/tagua/files/ Octubre 10, 2011
Manual de programación J2ME http://mygnet.net/manuales/j2me/manual_programacion_j2me.510 Octubre 10, 2011
Arranque rápido para programar J2ME http://netbeans.org/kb/docs/javame/quickstart.html Octubre 10, 2011