Androideity

Programación android en español, tutoriales, documentación, noticias, smartphones, tablets, programación android, aplicaciones android

SMS en Android usando Eclipse

| | 50 Comentarios

Twitter: @JaimeYesidLeon

Cuando estamos programando aplicaciones para un dispositivo móvil como un Android, contamos con una variedad de recursos que enriquecerán nuestras aplicaciones si las usamos en conjunto con nuestra creatividad e imaginación. Dentro de estos recursos uno de los que me gustan mucho son los mensajes SMS, que te ayudarán mucho si en determinado momento no tienes la posibilidad de estar conectado a Internet y necesitas comunicarte con el mundo exterior, así que te traemos una explicación muy sencilla que te ayudará a conocer como se pueden enviar, recibir y manejar mensajes SMS automáticamente en un dispositivo Android.

Los mensajes de texto han ido desapareciendo en los dispositivos móviles inteligentes, ya que aplicaciones como Skype, Whatsapp, Messenger Live y muchísimas otras son mejores a la hora de entablar una conversación mediante texto escrito; el único inconveniente que tienen estas aplicaciones, es que las personas interesadas en comunicarse deben tener una conexión a Internet, cosa que no ocurre con los mensajes de texto SMS y ni si quiera la persona que recibe el mensaje debe tener una carga de tiempo para recibir el mensaje, lo cual lo hace propicio para aplicaciones especiales cuando no podamos estar conectados a Internet, como por ejemplo hacer una aplicación que cada tanto el dispositivo móvil envíe las coordenadas del GPS a una central de control para estar haciendo seguimiento por ejemplo a un carro transportador de mercancía, o por ejemplo enviar un mensaje a tu restaurante favorito para que vayan preparando tu platillo favorito y que se encuentre listo cuando llegues, en fin las posibilidades son grandísimas, solo es que las apliques a tu necesidad y hagas magia programando.

Sabemos que por medio de un Intent puedes enviar un SMS a través de la aplicación que viene por defecto el móvil, pero lo que te explicaremos es una manera en la cual manejar estos SMS sin necesidad de usar este servicio, así que vamos a hacer un ejemplo muy sencillo en el cual aprenderemos la manera de poder enviar un mensaje de texto con tan solo oprimir un botón, aunque no significa que sea la única manera, solo que es la más fácil, tu puedes cambiar ese botón por otro evento del móvil como por ejemplo dependiendo la hora, o dependiendo del lugar en el que te encuentres, o dependiendo de la temperatura de tu móvil, eso lo decides tu, nosotros lo hacemos con un botón para la explicación  pero con tu imaginación lo aplicarás a tus necesidades. Pero no solo eso, también haremos que nuestra aplicación lea los mensajes SMS y lo visualice en un Toast, lo cual nos sirve por ejemplo cuando estamos con ese video-juego que tanto nos gusta y no queremos cerrarlo para ir a ver que mensaje me ha llegado,  así se visualiza inmediatamente en mi dispositivo.

 Tenemos que recalcar que cuando estés manejando en tu aplicación los SMS o mensajes de texto, estos le generan un recargo al usuario del móvil, así que es muy importante que sepas usar de la mejor manera este recurso y hacerle entender de la manera más fácil al usuario de tu aplicación los costos que acarrea usar los mensajes SMS, debido a que el uso sin control o un error no previsto puede causar un gasto significativamente alto al usuario del dispositivo. Por tal razón hacemos énfasis en que Androideity no se hace responsable por mal uso que se le de a los conceptos aprendidos en este artículo, tan solo llevamos la información para que la aprendas a manejar de la manera mas correcta y la pueda usar en tus aplicaciones, pero no seremos responsables si llegan a surgir aplicaciones mal intencionadas que desean quitarle dinero a las personas buenas.

Aclarado todo y explicado todo lo que vamos ha hacer, entonces manos a la obra:

  1. Crear un proyecto nuevo llamándolo como quieras, nosotros lo hemos llamado SMS, con el paquete que llamamos com.androideity.sms y con la versión de Android 2.3 y creamos la actividad principal llamándola MainActivity.

 2. El layout para esta aplicación va a ser muy sencillo, solo necesitamos un botón que vamos a usar para pulsar y que automáticamente envíe el SMS; asi que el layout seria algo como el siguiente:

 3.  El código que debe ir nuestra actividad principal MainActivity.java empieza importando las librerías necesarias destacando aquella que se llama android.telephony.SmsManager debido a que con esta nuestro programa manejara los mensajes SMS que enviemos. También crearemos e instanciaremos el botón que usaremos para enviar nuestro mensaje, con lo que el código va quedando de la siguiente manera:

 4. Continuamos configurando el botón con el método setOnClickListener para que cada vez que oprimamos el botón sea escuchado y llame a un método que llamamos sendSMS al cual le pasamos 2 parámetros en formato String, uno es el numero del teléfono del móvil al cual vamos a enviar el SMS y el otro es el mensaje que enviaremos. Quedando el segmento de código de la siguiente manera:

5. Para terminar con el código de esta actividad, creamos el método que llamamos sendSMS, en el cual creamos un objeto SmsManager llamado sms y con el método sendTextMessage de este objeto enviaremos nuestro mensaje, finalmente quedando el código así:

 Debemos aclarar que este método le hace falta la verificación de envío, ya que de esta manera  no sabemos si realmente el mensaje fue enviado, eso lleva un poco más de elementos que de ser necesario los explicaremos en otro post, además no nos aparece la aplicación del móvil que normalmente vemos cuando vamos a enviar un SMS, simplemente es un mensaje “fantasma” que se envía automáticamente sin ninguna notificación o registro del envío, así que eso lo debes tener muy en cuenta cuando realices tu aplicación.

Ya tenemos nuestra parte del envío de SMS, ahora veremos la parte para recibir mensajes, para esto creamos una nueva actividad a la cual llamaremos SMSReceiver.java y  la cual no tendrá layout asociado pero tendrá que extenderse de la clase BroadcastReceiver la cual habilita a nuestra aplicación a recibir intents de otras aplicaciones usando el método sendBroadcast(). Y para poder manejar estos intents debemos crear un manejador o Bundle que nos facilita la tarea ya que los mensajes SMS son enviados en un formato llamado PDU (por sus siglas en ingles protocol data unit) y necesitamos una método especial llamado createFromPdu() que usaremos intrínsecamente con el bundle.

6.  Ya explicado lo anterior necesitaremos las sentencias import que hagan posible la recepción de los SMS dentro de los que son mas destacados son,  android.content.BroadcastReceiver para escuchar los SMS y android.os.Bundle para el manejo de los SMS, los demás importes ya los conoces, así que el código de nuestra actividad SMSReceiver.java inicia de la siguiente manera:

 7. Para recibir los SMS necesitaremos un solo método muy sencillo llamado onReceiver() al cual se le pasan 2 parámetros, uno es el contexto y el otro es un intent; dentro de este método creamos el objeto bundle pasándole los extras que necesitamos,  asi como otro objeto SmsMessage llamado msgs el cual estará null o vacio y es donde se almacenara cada SMS que llegue a nuestro dispositivo y por ultimo también crearemos un String llamado str que usaremos en el Toast para mostrar nuestro mensaje en formato de texto, así que el código sigue de la siguiente manera:

 8. Ahora vamos a escribir el código que se activa cuando ha llegado un mensaje SMS, empezando por evaluar si el bundle no está vacío, creamos un objeto pdu (el cual ya explicamos),  e instanciamos nuestro objecto msgs con el largo total del SMS que nos ha llegado, para que podamos saber que tantos caracteres debemos leer y mostrar al momento de crear nuestro String str, asi que el código sigue quedando así:

 9. Ahora creamos nuestro String con una sentencia  for que va evaluando el largo del SMS y va creando primero la dirección de quien ha enviado el mensaje, con el texto previo “SMS de:”,  después crea el cuerpo del mensaje que ha llegado, terminado con un salto de línea. Y para terminar con el código de esta clase, creamos un Toast que nos mostrara el String str cada vez que nos llegue un mensaje, así que el final del código seria el siguiente:

10. Para que nuestra aplicación funcione correctamente necesitamos indicar en el manifiesto de nuestra aplicación que necesitamos el permiso para enviar y recibir SMS asi como declarar que nuestra actividad SMSReceiver.java es del tipo receiver, lo que indica que no debe estar corriendo en nuestra pantalla para que se encuentre activa y realice su tarea correspondiente, para esto en nuestro archivo SMS Manifiest debe verse de la siguiente manera si asignaste los mismos nombres que nosotros usamos:

 Con esto ya terminamos nuestra aplicación, en la cual intentamos no ser muy extensos viendo lo más importante del manejo de SMS y esperando que no sea muy larga para ser estudiada, así que espero que te sirva para que tus desarrollos tengan mas recursos y puedas contar con más herramientas de trabajo y podamos aportar a nuestro querido sistema Android a crecer. Pero esto no queda aquí, como en cada uno de nuestros ejemplos te mostraremos como hacer esta aplicación y como funciona en la vida real, todos mostrado en un video para ti y para aquellos que nos buscan en Youtube.

Espero que te sea de ayuda este tema para tus futuras aplicaciones, espera pronto nuevos temas sobre esta fabulosa plataforma Android.

Nota: Si detectas algún error en el código, en la explicación, escrito o en el video, por favor escríbenos y con mucho gusto la corregimos. Agradecemos tu ayuda.
Nota 2: No te dejamos el código porque queremos que gastes teclado y aprendas escribiendo. Pero si necesitas algún código mostrado en este post, con mucho gusto te lo haré llegar.

 

 

Comparte este post

Acerca de: jaime

Hola, mi nombre es Jaime Yesid Leon, soy de Bogotá–Colombia, soy Ingeniero Electrónico, me encanta la electrónica, los microcontroladores y la programación. Practico futbol, leo mucho y no dejo los video-juegos para nada. Hago lo que me gusta y desde que conocí el SO Android me enamore y por eso estaré aquí aportando mi granito de arena a Androideity, una pagina genial.

Sígueme en Twitter

Leer todos mis artículos

También puede interesarte

Comentarios de este artículo

  • Cubi_252

    Hola buenas!!

    Primero me gustaria agradecerte el post que que esta muy muy bien explicado y el video ayuda bastante alguna cosilla que en el post no aparece.

    Mi duda es sobre el recargo en los moviles, ¿Se podría hacer que enviara solo un movil sin tarjeta sim a otros moviles que si la tengan, y asi de esta forma intentar evitar el recargo ya que se conectarian los telefonos por internet?

    • http://twitter.com/JaimeYesidLeon Jaime Leon

      Hola Cubi_252,

      El recargo del SMS no es posible evitarlo ya que es un servicio diferente al de internet, y sin una tarjeta SIM no podrias hacer lo que explicamos.
      Si quieres que se haga por internet, habria que hacerlo es a traves de un correo electronico o hacer un intent para que abra una aplicacion como Skype, y esto tengo pensado explicarlo si ninguno mas de los colaboradores de Androieity lo hace.

      Gracias por tu comentario.

      • Cubi_252

        Buenas Jaime,

        Ya siento parece un poco impaciente pero es que ando un proyecto y me gustaria saber para cuando tienes intencion de hacer la explicacion del correo electronico?

        Gracias Jaime.

        • http://twitter.com/JaimeYesidLeon Jaime Leon

          Hola Cubi_252
          Lo tenia en la lista, ya tengo 4 post antes, pero lo puedo preparar para hacer algo interesante y que le interese a mas personas; dejame y reviso, estoy un poco atareado con mi trabajo pero intentare acelerar la publicacion.

          Gracias por seguirnos.

  • Elmer John Perez Espinoza

    Hola,
    Primero felicitarte por tu estupendo trabajo del envio SMS desde tu Android.
    Queria hacerte una consulta con respecto a la recepcion del SMS y poder guardarlo en una base de datos. Es decir tener una app desarrollada en java que este corriendo en windows xp por ejemplo y cada vez que te manden un sms automaticamente lo detecte tu programa en java se conecte a tu celular extraiga el sms y lo guarde a una base de datos por ejemplo sql server. Se podria hacer me podrias orientar te antemano muchas gracias por tu respuesta.

    • http://twitter.com/JaimeYesidLeon Jaime Leon

      Hola Elmer,
      Si claro es posible hacerlo, tendrias que decirme si ya tienes listo algo, o si es solo una idea y que te oriente desde cero, dime tu duda concreta para saber como te puedo ayudar, pero de antemano te digo que si es posible hacerlo.

      Cordial saludo

      Jaime Leon

  • Roroman

    hola muy buena aplicacion la verdad quisiera saber como obtengo esas librerias de android o bien como hacerlo pork mi eclipse no cuenta con ese paquete lo tengo que descargar ??? grax saludos

  • Roroman

    hola muy buena aplicacion la verdad quisiera saber como obtengo esas librerias de android o bien como hacerlo pork mi eclipse no cuenta con ese paquete lo tengo que descargar ??? grax saludos

    • http://twitter.com/JaimeYesidLeon Jaime Leon

      Hola Roroman,

      Si amigo estas librerias son por defecto las que trae Android, a menos que estes usando una version menor a 1.6.

      Saludos

      Jaime Leon

      • Roro_julion_paz

        NO si grax jaime ya tngo las librerias ya instaladas ya tngo el codigo me marca un error en esta linea
        </manifest xmlns:android="http://schesmas.android.com/apk/res/AndroidManifest.xml&quot;

        loq pasa es que estoy aciendo una app para bloqueo y rastreo de un vehiculo la app q iciste no ocupa ni wifi ni saldo verdad?? por medio de q manda el mensag?? grax

      • Roro_julion_paz

        </manifest xmlns:android="http://schesmas.android.com/apk/res/AndroidManifest.xml&quot;

        mi duda es pormedio de q mandas el mensage no ocupas saldo.. ni wifi verdad???

      • Roro_julion_paz

        mi duad es q medio utilizaz para mandar el mensag…..no ocupas ni wifi ni saldo verdad??

  • Juanca_dosmil

    Saludos, te felicito por el tutorial realmente muy bueno me gustaría saber si me puedes orientar, con el código para que el momento de recibir un mensaje, el programa automáticamente responda con un sms con algún texto, al número del que recibió el mensaje.
    Muchas Gracias espero tu respuesta.

    • http://twitter.com/JaimeYesidLeon Jaime Leon

      Hola Juanca
      Si claro, con lo que tengo explicado en este tutorial lo puedes hacer, lo unico que te faltaria es validar la información que te llega.
      Por ejemplo validar el numero de telefono con uno que tengas previamente guardado, ademas validar el contenido que tengas tambien guardado y si las 2 condiciones se cumplen, envias el mensaje.

      Por ejemplo si tienes guardado 2 string, asi
      static final String numeroValido = “3156257896″;
      static final String mensajeValido = “DEVUEVE POSICION”;

      Y despues evaluas los string que te llegan en el mensaje, lo cual ya vimos en este tutorial, y si coinciden con lo que tienes guardado, pues automaticamente puedes enviar un SMS con lo que quieras, como ya lo vimos en el tutorial.

      Si me entiendes dime, y si tienes otras dudas, con mucho gusto.

      Jaime Leon

      • Juanca_dosmil

        Saludos y muchas gracias por tu respuesta!! No sé si me podrías ayudar con la siguiente inquietud:
        Veras lo de la validación lo entiendo, según el ejemplo tienes dos clases la MainActivity y la SMSReceiver que es la que se ejecuta cuando el evento de recibir el sms se activa, pero e intentado enviar el mensaje dentro de esta clase la SMSReceiver y se me genera un error, lo que me gustaría que me ayudes es con las líneas de código de cómo realizar esto(enviar SMS luego de validar la información) dentro de esta clase.

        Muchas Gracias!! Espero tu Respuesta Saludos!!

        • http://twitter.com/JaimeYesidLeon Jaime Leon

          Hola Juanca_dosmil

          Claro amigo yo te ayudo, dame un tiempo para codificarlo, no te digo que lo tengo hoy mismo porque estoy corto de tiempo, pero de seguro te ayudo. Cuando lo tenga listo te envio un mensaje por twitter.

          Cordial saludo

          Jaime Leon

  • Jgutierro90

    Hola Jaime, gran tutorial, me ha sido de muchísima ayuda, ahora tengo una duda a ver si fuera posible hacerlo.

    Quiero hacer una aplicación que espere la recepcion de un sms y cuando llegue conteste a ese numero con un texto (hasta aqui lo tengo mas o menos claro como hacerlo) pero aparte de eso me gustaria que mientras la aplicacion este abierta, camuflar lo maximo posible la recepcion de sms, me explico: evitar q el movil suene o vibre al recibir el sms, evitar que salga el tipico icono del sobrecito en la barra de notificaciones o incluso nada mas llegue ese sms borrarlo despues de contestar.

    Muchas gracias.

    • WilliamKnowles

      Hola Jgutierro90, disculpa te pregunte en ves de darte una respuesta, sabes como hacer para antes de presentar el toast, consultar el número del remitente del sms en la lista de contactos, y luego presentarlo en la pantalla…????

  • http://www.facebook.com/jose.gutierrofelip Jose Gutierro Felip

    Hola Jaime, gran tutorial, me ha sido de muchísima ayuda, ahora tengo una duda a ver si fuera posible hacerlo.

    Quiero hacer una aplicación que espere la recepcion de un sms y cuando llegue conteste a ese numero con un texto (hasta aqui lo tengo mas o menos claro como hacerlo) pero aparte de eso me gustaria que mientras la aplicacion este abierta, camuflar lo maximo posible la recepcion de sms, me explico: evitar q el movil suene o vibre al recibir el sms, evitar que salga el tipico icono del sobrecito en la barra de notificaciones o incluso nada mas llegue ese sms borrarlo despues de contestar.

    Muchas gracias.

  • David Morla

    Buenas tardes he puesto el codigo al pie de la letra pero el toast no se me levanta al recibir el mensaje, tb veo que en los servicios del telefono no esta mi aplicacion, sera por eso que no esta corriendo en segundo plano, lo que quiero hacer es ejecutar una url con una parte del body del mensaje pero primero quiero probar si me hace algo al recibir el mensaje, por favor tu ayuda

    • David Morla

      Que tal ya supere el error era que estaba poniendo mal mi clase en vez de ponerle la etiqueta de receiver estaba como activity por eso no hacia nada

  • http://www.facebook.com/de.luis.guitar Luis Antonio Reyna Chavez

    hola tengo unas par de dudas en general. He seguido el código de ejemplo, al ejecutarlo me sale error. mis preguntas son, DEsde el emulador se puede mandar el sms o hay que pasarlos al movil? y si ser este el caso, como se lo hace? y el codigo final del manifets no logro hacerlo. Podría ayudarme por favor de_luis_guitar@hotmail.com

    • David Morla

      Que tal yo tampoco podia simular recibir un mensaje de texto por eso lo pase al telefono directamente y probando en vivo,si sirve de maravilla este codigo

    • David Morla

      Este link te puede servir para que envies el mensaje desde el emulador http://androideity.com/2011/11/01/broadcast-receivers-en-android/ y seguirlo para ver cual es tu error

  • David Morla

    POr favor su ayuda deseo abrir una url despues de recibir el mensaje y se me cierra la aplicacion he buscado en foros pero no tengo solucion, este es mi codigo:
    // Se muestra el mensaje que llega
    Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
    Intent browserIntent = new Intent(Intent.ACTION_VIEW,
    Uri.parse(“http://www.google.com”));
    context.startActivity(browserIntent);

    • David Morla

      Ya encontré mi error solo faltaba poner una bandera antes de iniciar la actividad:
      browserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(browserIntent);

  • http://www.facebook.com/federico.pradoalfaro Federico Prado Alfaro

    Jaime, gracias!
    Me has ayudado mucho en un proyecto personal que estoy llevando a cabo.
    Tengo una pequeña duda que me gustaría me aclararas: Al parecer tiene una especie de límite en cuanto a los caracteres… “Hago una geolocalización y mando un mensaje de texto con la URL de google para ver la dirección en un mapa, pero se me muestra una excepción en el teléfono.
    Sabes algo de eso?
    Saludos y, nuevamente, gracias.

  • Silviokucharski

    Hola, muy bueno el código! funciona 10 puntos. Una consulta, cuando recibo un SMS, si en vez de mostrar un Toast quiero mostrar una pantalla de mi aplicación, como hago?

  • Pablo

    ¡Muy bueno! Explicas genial. Pero solo una cosa, antes de empezar con los pasos has puesto “Aclarado todo y explicado todo lo que vamos ha hacer, entonces manos a la obra:” el “ha” es sin hache :P
    Suerte!

  • http://www.facebook.com/people/Marvin-Guzman/100003169600663 Marvin Guzman

    Hola, gracias por el post, necesito tu ayuda, estoy haciendo una aplicación que lee de un archivo de texto un listado de numeros y luego envia un mensaje por cada numero almacenada en el archivo de texto. El problema que tengo es que solo envia el primer mensaje, sabes porque pasa esto?

  • http://www.facebook.com/people/Marvin-Guzman/100003169600663 Marvin Guzman

    Hola, gracias por el post, necesito tu ayuda, estoy haciendo una
    aplicación que lee de un archivo de texto un listado de numeros y luego
    envia un mensaje por cada numero almacenada en el archivo de texto. El
    problema que tengo es que solo envia el primer mensaje, sabes porque
    pasa esto?

  • Nfrfab

    Hola, me podrías
    alguna referencia para verificar el envío de sms (que librerías,
    comandos, etc). Te comento que soy programador, realice una app para celulares
    Nokia con Qt para Symbian, la app es bastante grande que maneja envío y recepción
    de sms, sql con sqlite, http Server, etc. Hace 3 meses vi que estaban
    desarrollando una versión de Qt para android, entonces quise portar mi app. Por
    suerte pude portar la mayor parte del código. Me quedo pendiente el tema de envío
    y recepción de sms. El envío y recepción de sms es el núcleo de la app. Lamentablemente
    en el foro oficial de Qt para android no me dan ninguna solución. Mi idea es
    crear una app en Eclipse que solo reciba y envie sms. Esta aplicación se
    comunicara con la app principal mediante intents -sendBroadcast(). La solución
    no es la ideal pero me parece que podría funcionar. Desde ya muchas gracias.

  • Juan Martin Bernal

    muchas gracias por el tutorial funciona….

  • Mac

    Hola Jaime,
    Quería saber si tienes un tutorial o puedes indicarme la forma de que cuando recibo un SMS con determinado contenido me ejecute una aplicación. Esto se puede hacer?

  • pepe

    Buenas, enhorabuena por su trabajo, muy bueno y claro, he seguido la “receta” pero lo que no consigo ver claramente el manifest, si pudiese enviarmelo por mail a pepebsd@gmail.com le estaria muy agradecido-. Gracias de antemano y enhorabuena por su labor.

    PD: Coincido con usted en que la gente “teclee” el codigo, así uno se entera mejor como funciona la aplicación.

    Un saludo

  • WillianKLM

    Jaime, muchas gracias por tu aporte, aui va mi duda, mira sucede que yo antes de presentar el toast, deseo buscar el numero en la lista de contactos, para en vez de presentar el número mejor presentar el nombre del mismo, pero ya de doy y le doy y me salen errores, o la aplicación se cierra, me ayudas por favor..???? de antemano gracias por cualquier respuesta o aclaración.

  • WillianKLM

    Hola Jaime, excelente tutorial me yudas orientando como puedo hacer para en vez de presentar el número de celu en el toast, buscarlo en la lista de contactos para presentar el nombre del contacto asociado a ese núm.?? de antemano gracias por tu respuesta

  • WillianKnowles

    Hola, Jaime muy buena la información acerca de los mensajes, se puede de pronto antes de presentar el toast, consultar el numero del remitente del mensaje en la lista de contactos, para en lugar de presentar el numero presentar el nombre.

  • Eduardo Sanchez

    Disculpa la molestia, no encuentro el MainActivity.java :(
    donde esta o como lo creo?
    por favor responde.

  • http://www.facebook.com/mexzziv.marquez Mexzziv Marquez De Mendoza

    buenas noches tengo un problema al crear el proyecto… no aparece tal como en los ejemplos o en video… no se si sea la versión del eclipse… ya que no aparece el android proyect solo el android simple proyec pero no se bien como configurarlo para que salga el com.androideity.sms… no se si m puedas orientar o dar alguna solucion a mi problema… muchas gracias por tu tiempo gracias.

  • Cristhiam

    Hola quisiera que me ayuden estoy haciendo un widget que mande sms pero no funciona no se si me pueden ayudar aqui esta mi codigo:

    public class Widget extends AppWidgetProvider {
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {

    super.onUpdate(context, appWidgetManager, appWidgetIds);
    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
    remoteViews.setOnClickPendingIntent(R.id.ibopenreport, buildButtonPendingIntent(context));
    }

    private static PendingIntent buildButtonPendingIntent(Context context) {
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(“105″, null, “C”, null, null);
    Toast toast=new Toast(context);
    Toast.makeText(context, “mensaje enviado”, Toast.LENGTH_LONG);
    toast.show();
    Intent intent = new Intent(context, Widget.class);
    return PendingIntent.getBroadcast(context, 0, intent, 0);
    }
    }

  • Miguel

    Buenos Dias…
    Cual es la logica a nivel de transporte del envio de msj por internet? ejemplo el whatsapp(Como funciona)

  • carlos

    Buen tutorial no tendras uno para mensajea de voz

  • Ditox26

    Hola, excelentetutorial, no hay mucha informacion en internet sobre este tema que esté tan clara, y menos aún con un video.

    Yo tengo la siguiente situación, a mi me gustaría que en vez de tomar el texto “Hola soy Android enviando un SMS”, tome un dato ingresado por el mismo usuario, guardado en SQLite. Sino me equivoco lo que necesito es una variable para cada texto que quiera que tome, verdad?
    o hay otra alternativa?

    Saludos

  • Julian

    Como puedo obtener una lista de los mensajes que tiene el dispositivo.

  • Marcelo Issa

    Muy buen post, se agradece!

  • leo

    Hola me ayudo mucho la explicacion , mi duda es como hago para que mi aplicacion lea los mensajes que yo mismo envio desde mi celular y los procese ya sea guardandolos en una base sqlite o enviandolo a un servidor , si alguien me puede ayudar ya que me estoy rompiendo la cabeza con esto

  • Leonardo Salazar

    SI quiero enviar un SMS desde Android a otro celular (que no sea smartphone). Que cambios debo realizar? Gracias.

  • Daniel Pereda

    Muy buen tutorial. Felicidades.

  • stuar

    hola me gustaria conseguir el proyecto completo
    como le hago para obtenerlo