Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Android / Construye tu aplicación de mensajeria

Construye tu aplicación de mensajeria

Por jc mouse martes, noviembre 18, 2014

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.

proyecto android

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

layout

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

sms en android

nada

🙂

Tags

Artículos similares

JTable con JCheckBox y celdas NULL

Me llego la siguiente duda por facebook que me pareció interesante: «Se quiere desarrollar una tabla en java que haga us[...]

Procedimientos Almacenados: Parámetros INOUT

En post anteriores vimos lo que son los parámetros IN y los parámetros OUT pero existe otro tipo de parámetro que es la[...]

Introducción a la internacionalización de aplicaciones

La internacionalización permite a las aplicaciones adaptarse a los diferentes idiomas y regiones sin necesidad de cambio[...]

Control de Stock en Java (Parte 1)

Un SGA «Sistema de Gestión de Almacenes»  es un programa informático destinado a gestionar las entradas y salidas de pro[...]

Editar archivos PDF en linea

Editar un documento PDF no es tan sencillo como editar un archivo de texto por ejemplo, para editar archivos PDFs necesi[...]

Programación Shell: Estructuras de control

Las estructuras de control de Shell son muy parecidos a otras lenguajes de programación. Las estructuras disponibles en[...]