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! :)
Quasar es un proyecto Open Source basado en el Framework Vue que nos permite desarrollar proyectos de todo tipo, por eje...
Webcam Capture es un API que permite usar una cámara web incorporada o externa directamente desde código Java utilizand...
En este post crearemos un cliente android para consumir un recurso de un REST API utilizando las librerías GSON y Volley...
Entre las muchas aplicaciones que hay en la playstore de google están las galerías de fotos de chicas 🙂 que tantos nos e...
Los códigos QR del inglés Quick Response Code o código de respuesta rápida es un tipo de código para el almacenamiento d...
Acierta los colores o Adivina los colores es un sencillo juego que consiste en que dado 6 colores «rojo», «verde», «salm...
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?