Enviar sms desde Java

Enviar sms desde Java

Enviar sms desde Java
5 (100%) 1 voto

En el articulo anterior explique mi necesidad de realizar una comunicación serial en java para realizar esto que hoy te presento, enviar sms desde Java. Hoy te muestro que necesitas y como hacer para enviar sms desde Java mediante un modem gsm, comandos AT y codigo Java, ya sea para tus aplicaciones de escritorio o aplicaciones web. Hoy en dia darle a tus aplicaciones la facultad de enviar sms es algo necesario para que tu aplicación deje de ser un simple programa y se convierte en un completo sistema, bases de datos, envío de mails y ahora.. envío de sms a todos tus usuarios, vamos ya!

Requisitos para enviar sms desde Java

Lo primero que necesitamos para darle a nuestras aplicaciones la facultad de enviar sms es un modem.

En este ejemplo utilizamos un modem ZTE MF180 con la red Telcel en México para el envio de mensajes, fácilmente puedes utilizar otro de tu conveniencia.

También necesitamos saber que el envíos de sms desde java mediante el modem ZTE conectado a nuestro pc se lleva a cabo con el envío de comandos AT al modem, mas adelante veremos algunos comandos AT básicos para el envío de sms.

Por ultimo necesitamos saber como enviar estos comandos a nuestro modem, si tienes problemas con esto puedes leerte mi anterior articulo donde te explico como realizar una comunicacion serial en java.


Suscríbete!

Suscríbete a nuestra lista de correo y recíbe los últimos contenidos directamente en tu bandeja de correo electrónico, puedes elegir únicamente de que categoria del blog quieres recibir contenido.

Suscríbeme

Nota: En caso de que cuentes con un modem igual al utilizado en este tutorial deberás conectarte al puerto com ZTE NMEA Device.

enviar-sms-desde-java-puertos-com

Comandos AT

El proceso para enviar sms desde java básicamente consisten en enviar una serie de comandos AT al modem mediante comunicación serial.

Básicamente necesitamos enviar..

Donde:

AT -> Saludamos al modem, util para saber si todo va bien.

OK -> Nos responde con un OK, podemos hablarle y nos entendera.

AT+CMGF=1 -> Le especificamos que enviaremos un sms modo texto.

OK -> Nos responde con un OK, ha entendido nuestro comando.

AT+CMGS=”+4420000000″ -> Especificamos el numero al que se enviara un sms.

> This message was delivery by sms in java. -> Escribimos el mensaje de texto a enviar.

Se ha enviado nuestro mensaje.

 

Aquí cabe mencionar que después de cada linea se debe enviar un enter, ya veremos como enviar esto en código, a excepción de la linea donde escribimos el mensaje de texto en donde no terminaremos la linea con un enter sino con un Ctrl+z, también veremos mas adelante como enviar esta combinación por código.

El código para enviar sms desde java mediante comandos AT es el siguiente:

el método writeData es un método con el que mandamos la información al modem conectado a nuestra pc, seria el output.write(text.getBytes()); de flujo (si seguiste mi articulo anterior de comunicación serial lo entenderás).

Los enter los realizamos mandando \r\n y la combinación Ctrl+Z para terminar de escribir el contenido del sms se envía con (char)26.

Lo que resta es crear una aplicación en torno a este proceso o incluir esta funcionalidad en tus aplicaciones java.

Mas adelante veremos como leer mensajes, borrar mensajes, etc, etc.. todo el control de nuestro modem en nuestras aplicaciones.

enviar-sms-desde-java-res1

¿Quieres aprender mas? Compra en amazon el libro Java Como Programar a un precio economico.

Enviar sms desde Java

Enviar sms desde Java
5 (100%) 1 voto

14
Dejar un comentario

avatar
8 Comment threads
6 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
8 Comment authors
EdwinRamiro SolaJonathan MelgozaluisCosme Ivan Marquez Recent comment authors
  Subscribe  
Notify of
Edwin
Guest
Edwin

Excelente tutorial, pero tengo una duda: ya funcionando mi aplicación a veces envío 2 – 3 sms y truena, con la misma configuración envío más de 100 y hasta entonces truena, me sale error 500 en la consola, leyendo un poco es el tiempo de espera entre comandos, ¿cuál sería el tiempo correcto de espera?

Ramiro Sola
Guest
Ramiro Sola

Hola Jonathan de desde ya muchas gracias por compartir tus conocimientos,,,, Tengo un problema. Tengo un arduino uno conectado au un sim800l, y quiero mandar sms por el serial de la ide de arduino y no logro hacerlo. El control +z no hace na y noencuentro la solución…
si pudieras ayudarme te lo agradecería….
saludos desde argentina

luis
Guest
luis

buenas tardes muy interesante tu post
puedes ponerte en contacto conmigo por favor a ver si podemos hacer algo en conjunto

gracias

Cosme Ivan Marquez
Member
Cosme Ivan Marquez

Gracias por tu Ayuda Jonathan, me ha servido bastante por fin lo estoy implementando.

facu
Guest
facu

Se podrá enviar desde un celular conectado por Usb como modem??

victor garnica
Guest
victor garnica

Hola amigo saludos.
Tengo una consulta. super el tutorial de antemano.
Resulta que ahora se requiere leer los mensajes que lleguen a la linea conectada al modem desde luego.
estoy usando los comandos
AT+CMGR: Leer un mensaje SMS almacenado
AT+CMGL: Listar los mensajes almacenados

En resumen no logro extraer los mensajes no leidos. ninguno.

Gracias

Juan garcia
Guest
Juan garcia

Muy buen tutorial . Sigue avanzando 🙂