En este post crearemos una aplicación sencilla para mandar mensajes de texto desde android.
Necesitamos
IDE: Eclipse + SDK Android
Nivel: Básico
Tiempo: 10 minutos
1. Crea un nuevo proyecto en Eclipse que llamaremos «Enviar SMS» 🙂 deja el MainActivity.java por defecto que te crea el IDE, no necesitaremos de otra clase más.
2. Permisos
Para que el sistema permita a tu aplicación hacer uso del servicio de SMS debes agregar un permiso en tu archivo AndroidManifest.xml, abrelo y añade el android.permission.SEND_SMS antes de la etiqueta application, de la siguiente manera:
<uses-permission android:name="android.permission.SEND_SMS"/> <application ...
3. Interfaz
Abre el archivo activity_main.xml que se encuentra en RES/LAYOUT/ y pega el siguiente código:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/str_para" /> <EditText android:id="@+id/txtPhone" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="phone" > <requestFocus /> </EditText> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="@string/str_mensaje" /> <EditText android:id="@+id/txtMsg" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:ems="10" android:inputType="textMultiLine" /> <Button android:id="@+id/btnSend" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:text="@string/str_enviar" /> </LinearLayout>
abre también el archivo strings.xml que se encuentra en RES/VALUES/ y añade las siguientes lineas de código:
<string name="str_para">Para:</string> <string name="str_mensaje">Escribir mensaje:</string> <string name="str_enviar">Enviar</string>
Guarda todo y tu interfaz ya esta lista
4. Codigo
Para terminar este tutorial, abre el archivo MainActivity.java y reemplaza el código de la clase con el siguiente:
import android.os.Bundle; import android.app.Activity; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.telephony.SmsManager; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { EditText txtPhone; EditText txtMsg; Button btnSend; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtPhone = ((EditText)findViewById(R.id.txtPhone )); txtMsg = ((EditText)findViewById(R.id.txtMsg )); btnSend = ((Button)findViewById(R.id.btnSend )); btnSend.setOnClickListener( new View.OnClickListener() { public void onClick(View view) { PendingIntent sentIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent("SMS_SENT"), 0); registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { switch (getResultCode()){ case Activity.RESULT_OK: Toast.makeText(getApplicationContext(), "SMS enviado", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: Toast.makeText(getApplicationContext(), "No se pudo enviar SMS", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_NO_SERVICE: Toast.makeText(getApplicationContext(), "Servicio no diponible", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_NULL_PDU: Toast.makeText(getApplicationContext(), "PDU (Protocol Data Unit) es NULL", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_RADIO_OFF: Toast.makeText(getApplicationContext(), "Failed because radio was explicitly turned off", Toast.LENGTH_SHORT).show(); break; } } }, new IntentFilter("SMS_SENT")); SmsManager sms = SmsManager.getDefault(); if( txtPhone.getText().toString().length()> 0 && txtMsg.getText().toString().length()>0 ) { sms.sendTextMessage( txtPhone.getText().toString() , null, txtMsg.getText().toString() , sentIntent, null); } else { Toast.makeText(getApplicationContext(), "No se puede enviar, los datos son incorrectos", Toast.LENGTH_SHORT).show(); } }}); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Ejecuta la aplicación y listo para enviar sms
🙂
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
En anteriores post construimos aplicaciones Cliente/Servidor los cuales intercambiaban mensajes de una forma secuencial...
Continuando con nuestro tutorial de «Mapas interactivos con HTML5» , esta es la sección que corresponde a los elementos...
Como dice un viejo dicho, «La practica hace al maestro» y en el mundo de la programación no es diferente, por eso siempr...
Control de versiones: Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los eleme...
Problema: Implemente el código necesario en Kotlin para resolver una ecuación de segundo grado de números reales: Soluci...
Shutter Encoder es un software de conversión de video el cual tambien maneja audio e imagenes. Su interfaz de usuario ha...
Los comentarios estan cerrados
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
Muchas gracias, me ha quedado. 🙂
Hola este tuto me ayudo genialmente, y solo tengo una duda como seria para utilizar el wifi para mandar msjs??!! como seria …
Saludos …
Muy buen tutorial! Muchas gracias!
me encanta programar pero solo tengo 16 aós y necesito saber como hacer una palicacion de enviar mensajes ero q el mensaje se envie conteniendo mas de un campo
saludos mandy
ej
q contenga
nombre
correo
telf
o algo asi me gustaria q me ayudaran lo antes posibl yo soy cubano
Y para leer los mensajes?
Muy bueno, me gusta. Solo necesito agregar o combiar algo: necesito enviar MMS, como puedo hacerlo?