Java: Enviar SMS en Android.

Un par de funciones para enviar mensajes (en algún caso no sólo sms), su funcionalidad es diferente:

El uso de las dos es el mismo:

enviaSMS("000000000","El mensaje");
enviaSMS2("000000000","El mensaje");

Función 1:

public void enviaSMS(String tel, String sms){
   SmsManager smsManager = SmsManager.getDefault();
   smsManager
      .sendTextMessage(tel,null,sms,null,null);
}

Función 2:

public void enviaSMS2(String tel, String sms){
   Uri uri = Uri.parse("smsto:"+tel);
   Intent it = new Intent(Intent.ACTION_SENDTO, uri);
   it.putExtra("sms_body", sms);
   startActivity(it);
}

Explicación:

La primera envía el mensaje sin dejar constancia de ello por ningún lado, no aparecerá en el historial ni nada así. Me parece bastante peligroso y despues de conocer esto tendré más cuidado a la hora de instalar aplicaciones que tengan permisos para SMS.

La segunda es la que creo óptima. Le dice al sistema que se quiere enviar un mensaje a determinado número y el sistema pregunta al usuario a través e de qué aplicación queremos enviarlo, si tenemos Whatsapp por ejemplo, nos dará a elegir entre la aplicación Mensajes del propio sistema o Whatsapp. Si se elige la opción clásica para SMS nos abrirá la aplicación con el número marcado y el mensaje escrito, pero el usuario será quien confirme el envío pulsando el botón Enviar. Teniendo en cuenta que es un servicio con coste, creo que lo aconsejable es hacerlo así. Esto me ha hecho pensar en aplicaciones como Hookt, que envía sms a tus contactos. En su día pensé que lo haría a través de sus servidores pero ahora, conociendo esta opción veo lo peligroso que resulta instalar aplicaciones con según que permisos.

Lo que antes sería un virus que envía emails en nuestro nombre, ahora puede ser una aplicación que el usuario descarga y acepta manualmente.

Comentarios (5)

hola! una pregunta hay forma de que el mensaje de texto que se vaya a enviar no necesite de tocar el boton de enviar? sino q agarrando un valor se meta en la funcion 2 y envie el mensaje?

claro que si lo pondrias en una lista los numeros que se requiere enviar y despues ejecutas la funcion de envio de sms

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.