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

El lenguaje de programación para Base de Datos de Google

Mangle es el lenguaje de programación de código abierto desarrollado por el gigante tecnológico Google presentado este a[...]

Contar segundos (Problema Resuelto)

El problema dice asi: Se desea contar los segundos que se presiona un JButton en un formulario. Solución: Para resolver[...]

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[...]

Plantilla android de aviso de página en construcción

Cuando tenemos dominio web pero aun no tenemos el contenido listo es común colocar en su lugar una simple web de aviso q[...]

Incrustar reporte en formulario java

Jasperreport nos brinda su propio visor de reportes, sin embargo en ocasiones queremos mostrar los informes directamente[...]

Genera IU con la IA Stitch de Google

«Stitch de Google» es la herramienta de inteligencia artificial (IA) de Google lanzada en su conferencia Google I/O 2025[...]