Envio de SMS usando j2me
Hola intento enviar un SMS mediante el puerto serie usando mi celular (w800) como modem ,mediante j2me y el API WMA ,el problema que tengo es que no puedo lograr que envie el mensaje por el puerto, en la simulacion envia mensaje.
Este es el pedazo de codigo que uso para el envio
static final String PUERTO_SMS = "comm:COM5;baudrate=9600";
String destino = "sms://" +tfno+ ":" +PUERTO_SMS;
MessageConnection con = null;
try {
// Abrimos la conexión con el destinatario
con = (MessageConnection)Connector.open( destino );
// Creamos una instancia de mensaje de texto
TextMessage mensaje = (TextMessage)con.newMessage(
MessageConnection.TEXT_MESSAGE );
// Fijamos el destinatario
mensaje.setAddress( destino );
// Fijamos el contenido del mensaje
mensaje.setPayloadText( tbMensaje.getString() );
// Enviamos el mensaje
con.send( mensaje );
Si alguien me pudiese hechar una mano se lo agradeceria mucho.
saludos! :D
- Inicie sesión o regístrese para enviar comentarios
- 8080 lecturas

ayuda para tesis
Hola amigos que gusto encontrar este tema , quisiera que me ayuden en realizar mi tesis ,no entiendo casi nada sobre programacion en dispositivos moviles, lo quisiera realizar sobre envio de mensajes de texto de una PC donde se alojaria el software enviar mesajes a un dispositivo movil Movistar . , si tuvieran un proyecto ya realizado con todas sus librerias y codigo .espero encontrar sus ayuda .gracias
este es mi correo :
m.carbajal.p@hotmail.com
ayuda para tesis
Si solo lo que quieres hacer es mandar un mensaje de texto o "SMS" a una movil, eso es facil. Lo que te tienes que asegurar es que tu SW del PC tenga comunicacion con un servidor SMSC. Ese servidor es el que controla el envio de mensajes de texto. De ese punto en adelante, cuando pones el numero de telefono del movil con cual te quieres comunicar, el servidor lo manda al movile correcto y el movil lo recibe automaticamente. No hay nada especial que tengas que hacer del lado movil.
Ahora, si estas busando tomar ese mensaje y hacer alguna otra funcion, entonces si tienes que tener una aplicacion disenada utilizando un "Listener" esperando recibir el mensaje.
No es el codigo completo que buscas, pero espero y te ayude.
re consulta
Interesante AntonioSantos72. Pero tengo una consulta. Al momento de enviar mensejes de texto mediante un programa, las empresas de telefonia que ofrecen el servicio al equipo donde va a llegar el mensaje de texto, no imponen filtros o restricciones de seguridad para que solo se reciban mensajes de emisores confiables, como otras empresas que brinden el servicio?
RE: Envio de SMS/MMS usando Java ME
Hola Conej@
¿Cómo estás?
Con gusto te ayudo.
Creo que estás yendo por un camino equivocado, pero no demasiado alejado de tu destino final..
Lo que está haciendo tu código es intentar hacer una conexión desde Java ME al API de mensajería, enviando un SMS a un destinatario X pero agregándole un puerto COM a la cadena de conexión. Esa cadena de conexión te va a generar un error, ya que no es correcta: el formato de la URI para SMS es sms://número_de_receptor:PORT. Pero ojo, creo que te has confundido en la definición de "PORT" que existe en la especificación... en el contexto del WMA, "port" (puerto) es una dirección virtual en la terminal receptora del SMS que permitiría que algún sistema/aplicación opere de manera particular cuando llega un mensaje a ese puerto... pero no se refiere a un puerto físico como comm.
Lo que describes que quieres hacer es conectar una PC a tu equipo y poder usar la PC para enviar los SMS a través del equipo (los cuales serían enviados por vía inalámbrica mediante una aplicación Java ME que escucha en el puerto serial del equipo). ¿Es correcto eso?
Si lo es, lo que debes hacer es dos cosas:
Primero, hacer que tu aplicación Java ME esté escuchando en el puerto serial para recibir el texto del SMS que quiere enviar la PC (sigue un ejemplo pequeño, hay un ejemplo más completo de esto en esta página):
static final String PUERTO_SERIAL = "comm:com0;baudrate=9600";
//Abrir conexión a puerto serial del equipo para escuchar el texto que vamos a enviar
CommConnection cc = (CommConnection)Connector.open("comm:com0;baudrate=19200");
//crear un arreglo de bytes para convertir el texto fácilmente en un SMS
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new buffer[4096];
int read = is.read(buffer);
while(read != -1)
{
baos.write(buffer,0,read);
read = istream.read(buffer);
}
//crear mensaje usando los bytes que leimos del serial
String mensajeTxt = new String(baos.toByteArray());
String destino = "sms://" +tfno;
MessageConnection con = null;
try {
// Abrimos la conexión con el destinatario
con = (MessageConnection)Connector.open( destino );
// Creamos una instancia de mensaje de texto
TextMessage mensaje = (TextMessage)con.newMessage(MessageConnection.TEXT_MESSAGE );
// Fijamos el destinatario
mensaje.setAddress( destino );
// Fijamos el contenido del mensaje
mensaje.setPayloadText(mensajeTxt);
// Enviamos el mensaje
con.send( mensaje );
Esto funcionaría usando un equipo que tiene servicio de SMS. En México, donde estás, Nextel como regla NO usa SMS como transporte de mensajería, utiliza MMS.
Entonces, lo que tendrías que hacer es usar el API de MMS, como sigue:
static final String PUERTO_SERIAL = "comm:com0;baudrate=9600";
//Abrir conexión a puerto serial del equipo para escuchar el texto que vamos a enviar
CommConnection cc = (CommConnection)Connector.open("comm:com0;baudrate=19200");
//crear un arreglo de bytes para convertir el texto fácilmente en un SMS
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new buffer[4096];
int read = is.read(buffer);
while(read != -1)
{
baos.write(buffer,0,read);
read = istream.read(buffer);
}
String destino = "mms://" +tfno;
String asunto = "SMS VIA MMS";
MessageConnection con = null;
try {
// Abrimos la conexión con el destinatario
con = (MessageConnection)Connector.open( destino );
// Creamos una instancia de mensaje de MMS
TextMessage mensaje = (TextMessage)con.newMessage(MessageConnection.MULTIPART_MESSAGE);
// Fijamos el destinatario
mensaje.setAddress( destino );
// Fijamos el asunto del mensaje
mensaje.setSubject( asunto );
// Crear partes del mensaje usando el arreglo de bytes que leímos del serial
MessagePart textPart = new MessagePart(baos.toByteArray(),0,baos.size(),"text/plain", "message","message text","UTF-8");
// Agregar partes al cuerpo del mensaje
mensaje.addMessagePart(textPart);
// Enviamos el mensaje
con.send( mensaje );
}
catch (Exception ex) {
//ocurrió un error, debes manejarlo correctamente
}
Esto creo que te debe ayudar.
ayudame a enviar un mensaje en java de SMS
amigo jfrincon no me corrio tu programa falla en el bufer podrias corregir ese detalle para ver como funciona tu programa es que lo trate de arreglar pero no pude gracias por tu tiempo.