java - texto - Android envía SMS automáticamente al hacer clic en el botón
manual de programacion android pdf (4)
Estoy tratando de enviar automáticamente mensajes SMS a un cierto número cuando el usuario presiona un botón en la pantalla.
Este es mi código:
Intent smsIntent = new Intent(Intent.ACTION_SENDTO,
Uri.parse("sms:xxxxxxxxxxx"));
smsIntent.putExtra("sms_body", "Hello");
startActivity(smsIntent);
xxxxxxx = número de teléfono
Tengo los siguientes permisos:
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
Cuando presiono el botón, me lleva a otra pantalla donde puedo editar mi texto y presiono Enviar. Solo quiero que haga este proceso automáticamente sin llevarme a otra pantalla. Como ya he definido mi mensaje, solo quiero enviarlo a un número en particular.
Y tampoco estoy seguro si coloco el número de teléfono corrent en la segunda línea de código. ¿Tengo que poner mi código de país primero o puedo poner mi número de teléfono móvil y funcionará?
Gracias
Prueba este código:
String messageToSend = "this is a message";
String number = "2121234567";
SmsManager.getDefault().sendTextMessage(number, null, messageToSend, null,null);
Con respecto al número, debe ingresar el número como si lo estuviera llamando desde el teléfono o enviando un mensaje sms de la manera normal.
Prueba esto
private static final String SMS_SENT_INTENT_FILTER = "com.yourapp.sms_send";
private static final String SMS_DELIVERED_INTENT_FILTER = "com.yourapp.sms_delivered";
String message = "hey, this is my message";
String phnNo = " " //preferable use complete international number
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(
SMS_SENT_INTENT_FILTER), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(
SMS_DELIVERED_INTENT_FILTER), 0);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phnNo, null, message, sentPI, deliveredPI);
Puedes usar la construcción en Intent también:
buttonSendSms_intent.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String smsNumber = edittextSmsNumber.getText().toString();
String smsText = edittextSmsText.getText().toString();
Uri uri = Uri.parse("smsto:" + smsNumber);
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", smsText);
startActivity(intent);
}});
la manera más fácil es usar SmsManager.Telephony.