Gracias al Intent ACTION_SEND
podemos crear aplicaciones Android encargadas de enviar SMS.
Aquí os dejo la página developer por si queréis saber más
sobre este Intent:
Antes de mostrar un ejemplo de como crear una aplicación
capaz de enviar mensaje de texto es importante que sepamos que tenemos que
añadirle los permisos en el archivo AndroidManifest.xml:
<uses-permission android:name="android.permission.SEND_SMS" />
|
*Nota: Obviamente
cuando tengamos hecha la aplicación, todos los mensajes que enviemos costará
dinero (Al no ser que tengáis los sms gratis).
Empezamos con el código:
MainActivity.java
package com.example.jony.enviosms; import android.os.Bundle; import android.view.View; import android.view.Menu; import android.app.Activity; import android.telephony.SmsManager; import android.util.Log; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { Button bEnviar; EditText txtNumero; EditText txtMensaje; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bEnviar = (Button) findViewById(R.id.bEnviarSMS); txtNumero = (EditText) findViewById(R.id.editText); txtMensaje = (EditText) findViewById(R.id.textMensaje); bEnviar.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { sendSMSMessage(); } }); } protected void sendSMSMessage() { Log.i("Enviando SMS", ""); String phoneNo = txtNumero.getText().toString(); String message = txtMensaje.getText().toString(); try { SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNo, null, message, null, null); Toast.makeText(getApplicationContext(), "SMS enviado correctamente!.", Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getApplicationContext(), "Error al enviar el SMS.", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } } |
El layout es muy simple. 2 cajas de texto donde pondremos el
nº de teléfono desde destinatario y otro para escribir el mensaje y un botón
para enviar el SMS.
Layout: activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Escribe el nº de telefono:" android:textColor="#2E2EFE" android:id="@+id/textView" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText" android:textColor="#FF0000" android:phoneNumber="true" android:layout_centerHorizontal="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Escribe el texto del SMS" android:textColor="#2E2EFE" android:id="@+id/textView2" /> <EditText android:layout_width="fill_parent" android:layout_height="100dp" android:id="@+id/textMensaje" android:textColor="#FF0000" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enviar SMS" android:id="@+id/bEnviarSMS" android:layout_centerHorizontal="true" android:layout_marginTop="48dp" /> </LinearLayout> |
Este será el aspecto que tendrá la aplicación.
Por último, como hemos dicho al principio que no se nos
olvide darle los permisos en el AndroidManifest.xml.
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.jony.enviosms"> <uses-permission android:name="android.permission.SEND_SMS" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> |
Probamos la aplicación desde nuestro teléfono móvil y no
desde el emulador:
No hay comentarios:
Publicar un comentario